Publishing and environments
dev, uat and prod — how content moves, and what points the front door where.
Thu Sep 03 2026
Content lives in a per-environment database. How publishing snapshots an entry, how promote moves it up, and what default_slug and the status key control.
Content lives in a database, not in the code. There are three copies of that database — one per environment — and content moves between them deliberately.
dev, uat, prod
- dev is where content is authored and where drafts are visible. Builds here show the working copy of every entry.
- uat is for review. It shows only published content.
- prod is the live site. Same rule: published content only.
How content moves
Editing happens in dev. When an entry is ready it is published, which snapshots its current state. A promote step copies published entries from one environment up to the next. The copy is per-app, so promoting this site never touches another site sharing the same table.
What points the front door
Two things decide what a visitor sees first:
default_slug— the page that/redirects to. It is a config value, not a code change.- the status key — a small per-environment switch that puts the site into coming-soon, maintenance or live mode at the edge, before the page is even served.
The takeaway
A deploy ships code. Publishing and promoting ship content. They are separate on purpose: you can fix a typo without a release, and you can release without touching a word of copy.