Farther ShoreDocs
Go to Farther Shore
What is FartherShore
Install the CLI
Quickstart
Core concepts
The @Product class
Meters & resources
Features & routes
Capabilities & entitlements
Plans & pricing
The Manifest IR
Bring your own backend
Transport modes
Metering & verification
Runtime tokens
Frontend SDK
Root & data components
Auth & sessions
Entitlement gates
Connect Stripe
Subscriptions & usage
Plan changes & grandfathering
Billing strategies
Apply & deploy
Environments
Migrations
Docs versions & archive
How versioning worksArchive a versionRestore a versionWhere you drive itSee also
Operate with an agent
Operation classes
MCP server
End-to-end via CLI/MCP
CLI reference
@farthershore/product
@farthershore/backend
@farthershore/farthershore-js
Environment variables
Response & deny codes
Add a metered capability
Gate a feature
Change a price
Prepaid credits
Meter AI tokens
Operate via an agent
Prepare for launch
Status
Docs/Operate live/Docs versions & archive

Docs versions & archive

Every published docs version is registered. Archive hides a version from the public dropdown without ever deleting it; restore brings it back.

PreviousMigrationsNextOperate with an agent

Every documentation version you publish is registered in a shared docs version registry. The public version dropdown your readers see is derived from that registry. You can archive a version — drop it from the dropdown — and restore it later, because archive never deletes anything. It's a recoverable status flip, the same model as product soft-delete.

The same registry powers both kinds of docs:

  • Your product's docs — published from your product repo's docs/ folder. See Update product docs.
  • The platform's own docs (this site) — released from CI on a docs-v* tag. See Platform docs publishing.

How versioning works

When a docs version is published, it's registered as an immutable release keyed by its tag:

  • The tag is the natural identity (a GitHub tag for product docs, a docs-v* version for platform docs). Re-publishing the same tag with the same content is idempotent; re-publishing a tag with different content is rejected — a published tag never changes underneath your readers.
  • Each release gets a monotonic version number per scope, plus its commitSha, publishedAt, page list, and source (github/ui for product docs, ci for platform docs).

Postgres is canonical. The public feed is a derived docs/{scope}/versions.json in R2 that lists only the public releases, newest first, with a latest pointer:

{
  "latest": "v1.4.0",
  "releases": [
    { "tag": "v1.4.0", "commitSha": "a7e304e", "publishedAt": "2026-06-24T17:40:11.000Z", "source": "github" },
    { "tag": "v1.3.0", "commitSha": "291e686", "publishedAt": "2026-06-12T09:02:44.000Z", "source": "github" }
  ]
}

Archived releases are simply absent from this feed — they stay in the registry but drop out of the dropdown.

Archive a version

Archiving flips a version's status to archived. The effect is immediate and fully reversible:

  • The version disappears from the public version dropdown and from versions.json.
  • It is not deleted — the release row, its content in R2, and its tag all remain. If it was the latest, the feed's latest advances to the newest remaining public version.
  • The feed is regenerated from the registry on every change, so the serving mirror stays in lockstep with the canonical state.

Reach for archive when a version is superseded, was published by mistake, or documents a release you no longer want readers to land on — without losing the ability to bring it back.

Restore a version

Restoring flips an archived version back to public. It reappears in the dropdown and rejoins versions.json exactly as it was — same tag, same content, same publishedAt. Because nothing was ever deleted, restore is lossless and can be done at any time.

Archive and restore are operate actions over live serving state, not changes to your docs source. They flip which versions are visible — they never edit the docs content. To change what a version says, publish a new version instead.

Where you drive it

The version registry is shared, so archive/restore work the same for whichever docs you own:

  • For your product's docs, manage versions from the product's docs area in the dashboard.
  • For the platform docs (this site), manage versions from the admin UI.

In both cases the operation is the same recoverable status flip described above: archive to hide a version from readers, restore to bring it back. The set of versions you can act on is every release ever registered for that scope — including archived ones — newest first.

Publishing a new version is a separate action from archiving an old one. Pushing docs (product) or cutting a docs-v* tag (platform) registers a new version; archiving only changes the visibility of an existing one. See Apply & deploy for the publish/release lifecycle.

See also

  • Update product docs — publish your product's docs.
  • Platform docs publishing — how this site is released.
  • Apply & deploy — the release lifecycle behind a published version.