Your transactional copy usually lives in the codebase — a React Email component, an MJML file, a string literal in a route handler. Every wording change is a pull request and a redeploy, with a developer in the loop for a comma. A template moves that copy out of the repo and into the SenderKit dashboard. Your code references the template by name; the subject, layout, and copy live in the dashboard, where anyone on the team can edit them without touching code.Documentation Index
Fetch the complete documentation index at: https://docs.senderkit.com/llms.txt
Use this file to discover all available pages before exploring further.
What a template is
A template is a named, channel-bound definition of a message. It carries:- A slug — the stable identifier your code sends to (
"welcome","password-reset"). Unique within your workspace. - A channel —
email,sms, orpush. Fixed when the template is created; a template targets exactly one channel. - A stack of versions — the actual subject, layout, and copy live in versions, not on the template itself. The template just points at whichever version is currently published.
- A status —
draftuntil you publish a version, thenactive. Templates can also bearchived.
The template is identity and routing; the content lives in its versions. That
separation is what makes copy edits safe — every change is a new version you can
publish or roll back independently.
Referencing a template from a send
Your code names the template by slug and supplies the recipient and variables. It never names a version or a channel — the channel comes from the template, and SenderKit picks the version for you (see Versioning and Environments).404; in live mode, a template with no
published version is also a 404 until you publish one.
Why this decouples copy from deploys
You wire upsend({ template: "welcome" }) once. After that, changing the welcome
email’s wording is a dashboard edit and a publish — not a code change, not a
redeploy, not your time. The send call is a stable contract; everything that can
change without engineering (the words, the layout, the subject line) lives on the
other side of that contract.
Variables
Fill the dynamic holes in a template at send time.
Versioning
How edits become versions and how a send picks one.
Channels & Providers
What a template’s channel means and who delivers it.
Sending
How a template reference turns into a delivered message.