Documentation

Posts & Content

Hosted blog CMS supports a full tenant-scoped lifecycle: draft, preview token, publish, unpublish, and taxonomy management.

Lifecycle

  1. Create draft in /dashboard/company/blog/content.
  2. Generate preview token and open draft preview on custom domain.
  3. Publish to pin lastPublishedVersionId and expose on hosted runtime.
  4. Unpublish to return post to draft-only visibility.

Dashboard Content Tab

Content tab includes:

  • Post table with status and publication date.
  • Markdown-first editor and side-by-side preview pane.
  • Category/tag assignment plus on-the-fly taxonomy creation.
  • Publish, unpublish, delete and preview-token actions.

APIs

tRPC namespace:

  • blogContent.list/getById/create/update/delete/publish/unpublish/createPreviewToken/listTaxonomy
  • blogAssets.initUpload/completeUpload for hosted branding assets.

Hosted Runtime Paths

  • SUBDOMAIN: index on /, article on /:slug.
  • SUBPATH: index on configured base path (example /blog), article on/blog/:slug.
  • Preview route uses query token ?preview=<token>.

SEO & Indexing

  • Published posts are indexable and emit canonical metadata per host.
  • Preview and unresolved draft paths are served with noindex.
  • Hosted feeds are available at /rss.xml and /sitemap.xml (or/blog/rss.xml and /blog/sitemap.xml in subpath mode).

Taxonomy

Categories and tags are tenant-scoped entities attached via join tables.

Limits: categories per post max 12, tags per post max 24. SEO title and description max lengths are enforced in schema validation.

Related: Themes, Branding and Domains.