Edit and publish
Once your copy lives behind keys, changing it is a two-step rhythm: draft, then publish. Nothing goes live while you're still wording it, every published version is kept, and none of it touches a component or a deploy.
This page needs a store. A fresh install is snapshot-only, where the committed file is the live value — you change the words in the dashboard and commit instead. To get drafts, versions and history, add a store block to stet.config.json and run stet upgrade --store pg; the leave chapter walks the same three steps.
01Draft a change
A draft saves with your name on it and changes nothing live. Long values go in a file with --value-file; --note records why.
$ npx stet draft promo_banner --value "Spring sale ends Friday"02See exactly what would change
diff prints the active value against the pending draft.
$ npx stet diff promo_banner03Publish it
Publishing is one database transaction; the next request serves the new words. Every previous version is kept.
Edits can also travel together: several keys drafted into one named change publish as a single transaction and revert as one, over the HTTP API — or from the editorComing. A scheduled group is honored by publish --due.
$ npx stet publish promo_banner04Or schedule it
A draft can carry a publish stamp. publish --due publishes every draft whose time has passed — run it from your cron, or Cloud's clock runs it for you.
This is also how you change several keys together: give each draft the same stamp, and one publish --due takes them all live.
$ npx stet draft promo_banner --value "Sale extended" --publish-at 2026-09-01T09:00:00Z
$ npx stet publish --due05See what's pending
Every key on one screen: where its value resolves from, the active version, and whether a draft is waiting.
$ npx stet listNext
- Check — the four checks, three of them fully offline
- Versioning — every change kept, undo in one click
- Review — changes wait for approval before going live