Site copy
Typed keys, limits, variables, snapshot fallback.
t("hero_headline")stet is the copy layer for everything you ship: every sentence your products say — typed, versioned, and editable without a rebuild.
Works with your stack
Site copy, email slots, bot messages and SEO fields are the same kind of thing: a key with a shape, a limit and a home. One registry holds them all.
Typed keys, limits, variables, snapshot fallback.
t("hero_headline")Editors own the words; your template owns the markup. Transactional mail stays host-fired.
slots("trial_ending")Audiences, a pre-flight gate, send records, a public archive.
audience: trial-ended (1,204)Consent and suppression in your own Postgres; webhook and delta sync.
contact.created → webhookTitles, descriptions, canonicals, OG and JSON-LD, checked offline from the registry.
stet seo checkCLI and MCP. Agents draft; review decides. Scoped tokens, recorded authors.
stet mcp serveEach one is a workflow a team already has; stet removes the deploy, the ticket or the spreadsheet behind it.
Effortlessly change the copy without any developer, and see it live the moment you publish. No deploy, no waiting, and one click puts the old wording back whenever you want it.
Already have a site full of words? stet finds every one of them and brings them in for you, so all you do is confirm what counts as copy — and your site carries on looking and working exactly as it did.
Let your AI agent write the first version, and everything it suggests waits quietly for approval with its name against it, so nothing reaches your visitors until a person has said yes.
The small SEO mistakes that quietly cost you traffic — a missing description, a duplicate title, a headline that runs too long — get caught in seconds on every change, long before anyone else sees them.


Four steps, and the last one is the point: publishing is a transaction, not a deployment.
Detects the framework and the store; the first key renders in two minutes.
stet scan finds the copy you already wrote; register covers the rest.
Developer mode or simple mode; reviewers arrive through a signed link.
One transaction, no deploy, one-click revert. Agents draft; review decides.
These hold from your first install, and they don't change as stet grows.
Everything that makes stet work ships free. Cloud adds the managed service teams and professionals need — hosting, collaboration, review and custody.
For developers running their own infrastructure. The whole mechanism — not a demo.
Forever · Apache-2.0 · single-userForever · Apache-2.0 · single-user
InstallIncludes:
For one person shipping one product.
1 project · paid monthly1 project · works out to $15.83/mo
Join the waitlistEverything in Self-hosted, and:
For teams where more than one person touches the words.
3 projects · extra projects $10/mo3 projects · extra $10/mo · works out to $32.50/mo
Join the waitlistEverything in Solo, and:
For companies that need retention, audit and priority answers.
10 projects · extra projects $10/mo10 projects · extra $10/mo · works out to $124.17/mo
Join the waitlistEverything in Team, and:
Building for clients? Extra projects are $10/mo — the ninth site costs like the third.Full pricing
Yes — it is the product, single-user, not a trial. Cloud sells review, identity, the clock and custody, never the mechanism.
The standalone and Cloud dashboards work with any host through the preview-URL primitive. What you hand-wrap is the embedded-component layer; stet scan's shapes are JSX, so template copy is adopted by register.
stet import takes any JSON or CSV export through one mapping file. Per-CMS recipes, no connectors.
The repo always holds a complete, buildable copy of every string; contacts export as CSV or JSON and never enter git. The eject promise is a public page.