Email templates that look designed. No code required.
Drag blocks into place, let your brand kit dress them, and publish a version. Your code sends it by alias, and every email remembers exactly which version it used.
Browse by occasion. Every one is built from blocks you can drag.
These are ideas, drawn for brands we made up. The dashboard's starter gallery ships seven ready to edit: Welcome, Magic link, Password reset, Order confirmation, Receipt, Invoice and Shipping update. Everything else here you can build in an afternoon.
Showing 17 designs
Welcome
Fernhouse · Welcome
Product launch
Northwind · Launches
Receipt
Crumb & Co. · Receipts
Seasonal sale
Juniper Supply · Sales
Newsletter
Spoke & Sprocket · Newsletters
Event invite
Globex · Events
Password reset
Acme · Security
Shipping update
Tidepool Coffee · Receipts
Team invite
Paperkite · Welcome
Weekly digest
Orchard Notes · Newsletters
Sign-in code
Northwind · Security
New arrival
Spoke & Sprocket · Launches
Flash offer
Crumb & Co. · Sales
Onboarding
Globex · Welcome
Workshop
Crumb & Co. · Events
Journal
Fernhouse · Newsletters
Order confirmation
Spoke & Sprocket · Receipts
Your brand, on every template. Change it once. Go on, try it.
Brand kit
{{brand.company_name}}Fernhouse
{{brand.primary_color}}#5b3df5
{{brand.accent_color}}#ffd166
{{brand.font}}georgia
{{brand.button_radius}}999px
Thanks for your order
Order 1042 · Pickup Saturday, 9:00
Country sourdough$8.00
Cinnamon knots × 4$12.00
Rye, sliced$7.50
Total$27.50
A kit holds your logo, two colours, a font, a button shape, your company name, your address and a footer line. Templates reach it through tokens like {{brand.primary_color}}, so an edit to the kit shows up in every template's next render. A single template can pin its own colours or logo when it needs to be the exception.
Drag, drop, done. A drag-and-drop editor built into Rasket, so anyone on the team can make the email.
Ten blocks, zero markup
Sections, columns, headings, text, images, buttons, dividers, spacers, social links and a footer. Columns stack on a phone by themselves.
The keyboard works too
Every block can be picked up and moved without a mouse, because an editor your whole team uses has to work for all of it.
Compiled for real inboxes
The editor saves a document of blocks, and our servers compile it into email HTML built for the quirks of desktop, web and phone mail apps.
The default for new templates
A new template opens on the visual editor. A template written as HTML through the API is versioned, published and sent exactly the same way.
Built for the code that sends it. Versioned, typed, and addressed by a name you choose.
Publishing freezes a version
Edits open a new draft. Sends keep using the published version until you publish again, and a draft can never be sent.
{{key}} and nothing else
No logic, no filters, no nesting. A value that contains braces lands as literal text, so data from your database cannot smuggle in a placeholder.
Typed variables with fallbacks
String, number, boolean, object or list, each with an optional fallback. A value of the wrong type, or a missing one with no fallback, is refused rather than sent half-filled.
Send by ID or alias
An alias like order-shipped is lower case, unique among your live templates and can never look like an ID, so it is a handle your code can keep.
Every email records its version
A later edit never changes what an already-sent message said, and preview renders any version with sample values before you publish.
POST /templates{ "name": "Welcome", "alias": "welcome", "subject": "Welcome, {{name}}", "html": "<p>Hello {{name}}, thanks for joining.</p>", "variables": [ { "key": "name", "type": "string", "fallback_value": "there" } ]}POST /emails{ "to": "ronald@example.com", "template": { "id": "order-shipped", "variables": { "name": "Ronald", "order_id": 1042 } }}Questions about email templates
What happens when I edit a published email template?
Nothing, until you publish again. The first edit after a publish opens a new draft and later edits write that same draft, while sends keep using the published version. Retrieving the template shows the draft, with has_unpublished_versions set to true so you can tell the two apart.
Can I send from a draft?
No. Only a published template can be sent, and naming one that has no published version in a send is refused with a 422 rather than sent from whatever the draft happens to say.
How do I address a template from my code?
By its ID or by its alias. An alias is lower case letters, digits, hyphens and underscores, up to 63 characters, unique among your live templates, and may never look like an ID, so a name like order-shipped is a stable handle your code can hold on to. Deleting a template frees its alias again.
What template syntax do you support?
{{key}}, with optional spaces inside the braces, and nothing else. There is no logic, no filters and no nesting, so a value that itself contains braces is inserted as that literal text rather than expanded. Strings are escaped in the HTML body and left raw in the subject and the text body.
What if a send leaves a variable out?
It takes the fallback declared on that variable. A declared variable with no value and no fallback is refused with a 422, and a key the template never declared is refused too, so an email does not go out with a placeholder still showing.
Does editing a template change emails I have already sent?
No. Each email records the template and the version it used, so what a customer received stays correct in your records however often you change the template afterwards.
Publish your first template
Start from a starter or a blank canvas, put your brand on it, and send it by alias with your values filled in.