Content
Posts and pages: create, edit, publish, translate, and what the Content Types screen can (and cannot) do yet.
8 min read
Admin → Content lists posts and pages. Create from New, edit metadata on /admin/content/:id, and open the visual builder at /admin/content/:id/builder. Dashboard tiles also jump to a new post or page.
Types
The create API accepts `post` or `page`. Optional fields JSON is stored on the row. Admin → Content types is a field-builder UI (text, textarea, richtext, number, boolean, media, date, select) that currently lives in client state only — it is not persisted, and the API still only knows post and page.
Statuses
The admin API accepts draft, published, archived, and scheduled. Publishing is available to administrators, editors, and authors. Authors can edit their own items; administrators and editors can delete any.
Scheduled publish
scheduled is accepted on PATCH. A job name content.publish-scheduled exists on the jobs package; the CE server does not yet register a cron publisher. Treat scheduled as a status you set, not an automatic go-live clock.
Translations
POST /api/content/:id/translate with { locale } clones the item into a translation group (translation_group_id, per-row locale from migration 0002). List filters: type, status, slug, locale, translationGroupId, limit, cursor.
Admin API
| Method | Path | Purpose |
|---|---|---|
GET | /api/content | List (session, content roles). |
POST | /api/content | Create. |
GET | /api/content/:id | One item. |
PATCH | /api/content/:id | Update metadata, status, blocks, fields. |
DELETE | /api/content/:id | Delete. |
POST | /api/content/:id/translate | Clone into another locale. |
Saves invalidate the content: cache prefix. Hooks: content.beforeCreate / beforeUpdate / beforeDelete / beforePublish (gates), then content.created / updated / deleted / published / unpublished (actions). Filters content.input, content.output, and content.render sit on the way in, out, and onto the public HTML.
Revisions and taxonomies
A revisions table exists, and @justflows/content can keep the last 50 in-memory revisions. The running Express admin does not expose revision HTTP routes. Taxonomy tables (taxonomies, terms, content_terms) are in the schema without admin CRUD yet.