Skip to content

The content inventory (admin) ​

In the admin: Content — the screen this page documents (opens in the running app).

What/why: Content & media — what this screen manages and why it exists.

The Content screen under /admin/content is the content home: a single inventory of every piece of app content, so an editor sees the whole surface — what's live, what's drafted, and what's unset — in one place instead of hunting across screens. It is restricted to the data editor capability (edit_data); see admin-access.md.

The site carries two structurally-distinct kinds of content, and the inventory shows both side by side, clearly distinguished (for the model behind them, see the content-model reference):

  • CMS pages — admin-authored static pages you create, compose from sections, and publish to /<slug>. Fully CRUD-able: the page (and, until first publish, its URL) is yours to change.
  • Code-routed pages — named copy slots on fixed routes owned by the app (the home splash headline and body). The copy is editable, but the route itself is set in code — there is no "new" or "retire" for these, only edit-and-publish.

What the inventory shows ​

CMS pages ​

Each CMS page lists its title, slug, status (Draft / Published / Retired), section count (how many typed blocks compose its body), and last updated date. A published page also links to its live public URL (/<slug>); a draft or retired page has nothing public to open, so no public link is shown.

The lifecycle actions run directly from the inventory — it is a real content home, not a read-only list:

  • New page reveals an inline create form (a title, and an optional slug derived from the title). A new page is always born a draft.
  • Publish takes a draft live at /<slug> and permanently locks its slug (a live URL must never rot).
  • Retire takes a published page offline — a soft, reversible change; the page and its content are preserved.
  • Re-publish / Revive to draft bring a retired page back, as-is or for editing first (the slug stays locked).
  • Edit opens the full page editor (/admin/pages/[id]) for the title, slug, and sections.

These are the same operations — and the same audited write layer — as the Pages screen; the inventory simply surfaces them from the one home.

Code-routed pages ​

Each code-routed page shows how many slots it owns and their state — how many are published (serving edited copy) versus unset (serving the built-in default) — with a Draft pending marker when a slot has an unpublished working copy. Edit content jumps to the page-content editor, where you draft and publish each slot's copy. The route is fixed in code, so there is nothing to create or retire here.

Where editing happens ​

The inventory is the map; the deep editors are unchanged and it links into them:

To…Go to
Create, publish, retire, or revive a CMS pagehere, on /admin/content
Edit a page's title, slug, or sectionsPages (/admin/pages/[id])
Edit a code-routed slot's copyPage content (/admin/page-content)

Every create, publish, retire, and revive is written to the audit trail with the acting editor's identity.