User guide · Edit

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_banner

03Publish 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_banner

04Or 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 --due

05See what's pending

Every key on one screen: where its value resolves from, the active version, and whether a draft is waiting.

$ npx stet list