Skip to content

Editing and publishing

The editor your team asked for.

Writers, merchandisers and support teams get forms built from your schema, with drafts, scheduled publishing and version history: the admin panel you'd otherwise build. Your code and your agents work on the same records, under the same rules.

Editing the article 'Designing a content model that ages well' in a form built from its schema: title, slug, summary and a rich text body with headings and lists, beside the project's collections.

Made for the writers.
No tickets, no deploys.

Every field gets the input it deserves: rich text with the marks you expect and images from your assets, relations that search as you type, and a file picker. When it's ready, they hit Publish.

Fields, not forms

Typed fields, each with its own input: dates get a picker, relations get a search, assets get a file picker. Add one and every editor sees it in the next reload.

Publish when it is ready

Publish now or at a set time. Changes to a live page wait in a draft until you merge them, now or on schedule, and every publish is in history with a name and a time.

Records

Every entry at a glance

Published and unpublished records side by side, with cover thumbnails, revision numbers and when each one was last touched. Search, filter, select and act on many at once.

  • Search records, and filter by status or by any field
  • Bulk publish, unpublish, delete and restore
  • New records start unpublished; publish them now, or schedule it
A closer look at the Articles list: titles, cover thumbnails, Published and Unpublished badges and revision numbers.

History

Every change, on the record

Each save is a revision: who made it, through which client (the editor, the CLI, an SDK, an API key by name) and, when a note was left, why. Nothing about a record is ever a mystery again.

  • Diff any two revisions field by field, with word-level highlights for rich text
  • Revert to any revision in one click, even across a field migration
  • Redact values that should never have been saved; the activity log keeps the who and when
The history of the article 'Designing a content model that ages well': six revisions in a table, each with who made it, the client it came through and the change note. Helena Marsh created, rewrote and published it in the web app, Callum Reid added the summary, Leela Menon tagged it through an SDK ('Tag for the architecture series'), and the content-sync key updated it from the CLI ('Sync reading time from the site build').

Schema

A schema you can see, next to the shape your API returns

The same schema as code

Eleven field types, one editor

Text, long text, rich text, integer, decimal, boolean, date (with or without a time), enum, asset, relation and JSON. Text can be an email, a URL or a slug, and values can be unique. Each field takes the options it needs: required, multiple values, allowed values, ranges, lengths, the files an asset field accepts, the collection a relation points to. Drag to reorder; records are edited in that order.

Stable keys, recorded changes

Slugs and field keys stay put when labels change, and a renamed key keeps answering to its old name for six months, so a rename never breaks a client. Every schema change is written to the collection's own history, and the JSON and TypeScript shape beside the fields is exactly what the API sends.

The schema editor for Articles: title, summary, body, cover, author, category, tags, reading time, featured and published-on fields, next to the collection's name, slug and description and the JSON record shape.

Migrations

Change a type without a maintenance window

Turning text into integers, single values into lists or an optional field into a required one rewrites records, so it runs as a migration you preview first, in the editor or from the CLI.

  • A dry run lists every record: converted (before and after), cleared, or cannot convert, with the reason
  • Runs in the background; the collection is read-only until it finishes, everything else keeps flowing
  • Old values stay in history, so a migration is never the end of the story

Assets

One library for every file

Drop files on the Assets page, into a field's picker or into rich text, and see where each one is used before anyone deletes it.

  • Alt text written once, beside the image
  • Video, audio and any other file too
  • Deleted files restorable for 30 days
Images, video and files
The Assets page: article cover images and author avatars as thumbnails, with All assets and Deleted tabs and an Upload button.

Safe by default. Recoverable by design.

People, scripts and agents work on the same records at the same time. Nobody's work gets lost along the way.

How we keep your data safe
  • A role for everyone. Owners, admins, developers, editors and viewers: each person sees and changes only what their role allows.

  • Two people, one record. The later save never replaces the earlier one, whoever made it: the editor, a script or an agent. It is refused and shows what changed.

  • Deleted isn't gone. Records, fields, collections and assets come back for 30 days, unless a file is purged early to free its storage.

  • Leaving is one command. Export writes plain files: the schema, your records, your assets and, if you ask, the full history.

Questions, answered.

About the editor, publishing, history and migrations.

Ask us directly







See it with your own data.

Create a collection from a template, add a few records, and open the history panel. It takes less time than reading this page did.