Senlo vs React Email
React Email is for the developer. Senlo is for whoever edits the email.
React Email turns emails into React components in your repo: typed, reviewed, deployed with the app. That works until someone who does not write code needs to change a sentence. Senlo is a visual editor, a template store, an API and automations in one app, sending through the same Resend, Postmark or SES account you use now. Many teams run both.
No pull request for a typo
In Senlo the welcome email is edited, previewed with real data and published by the person who owns the copy. The code that sends it does not change.
An app, not a component
React Email 6 added an editor you can embed. Senlo is the rest of it too: storage, roles, test sends, delivery logs, and a POST /api/triggered your code calls.
Lifecycle flows without a scheduler
Welcome series, trial reminders and nudges become automations triggered by events from your app, instead of cron jobs and queues you maintain.
Before and after
The same welcome email, sent the React Email way and the Senlo way.
// changing the copy in emails/welcome.tsx means a PR and a deploy
import { Welcome } from "./emails/welcome";
await resend.emails.send({
from: "hello@example.com",
to: user.email,
subject: "Welcome to Acme",
react: <Welcome name={user.name} />,
});# copy and subject are edited in Senlo; this call never changes
curl -X POST https://senlo.io/api/triggered \
-H "Authorization: Bearer snl_..." \
-H "Content-Type: application/json" \
-d '{
"id": "welcome",
"to": "ana@example.com",
"data": { "name": "Ana" }
}'Feature by feature
| Feature | Senlo | React Email |
|---|---|---|
Templates as code in your repo, reviewed in pull requests | ||
Your own React components and design tokens in emails | ||
Visual editor for people who do not write code Since 6.0, @react-email/editor is a component you embed in your own admin; you build where edits are saved and who may make them. | ||
Change copy without a deploy Unless you build that around the editor. | ||
Template store: send by template id with variables React Email renders in your code. Templates can be uploaded to Resend and sent from there, on Resend only. | ||
Works with Resend, Postmark, SES or SMTP React Email gives you HTML; any provider can send it. | ||
Preview with real data and test sends The preview server renders sample props; test sends and shared previews are yours to build. | ||
Event-triggered automations with waits and branches | ||
Log of what was sent to whom, with opens and clicks Resend's dashboard logs sends; React Email itself does not. | ||
Export the email as HTML Senlo also exports MJML. | ||
Import existing React Email templates On Senlo's roadmap, as HTML and MJML import. | ||
Open source Senlo is AGPL-3.0; React Email is MIT. |
From the React Email 6.0 announcement, the editor guide and Resend templates with React Email, checked 2026-11-02.
What it adds to your bill
Your Resend bill does not change: Resend keeps delivering at its own rate. Senlo is the only addition, and it is priced by emails sent, not by contacts.
Free
$0 / month
Up to 3,000 emails and 1,000 automation runs a month, one person.
Pro
$19 / month
Up to 50,000 emails and 10,000 automation runs a month, 5 people with roles and a 30-day audit log.
Team
$59 / month
Up to 250,000 emails and 100,000 automation runs a month, unlimited people with roles and a 90-day audit log.
Self-hosted
≈ $8 / month
The same code, AGPL-3.0, on a 4 GB VPS of your own, any volume. Plus your time on upgrades and backups.
Above 250,000 emails a month Senlo Cloud has no plan: self-host, or write to us. Details on the pricing page.
Which one to pick
Pick Senlo if
- Product, marketing or support people need to change email copy, and every change waits for a developer.
- You want onboarding and lifecycle flows without writing a scheduler for them.
- You want one place to see what was sent to a user, and whether they opened it.
- You would rather not build storage, roles and previews around an embedded editor.
Stay with React Email if
- Only developers touch emails, and a pull request per change suits you.
- Emails reuse your app's components, types and design tokens.
- You want every template versioned in git next to the code that sends it.
- You already have an admin panel and the embedded editor covers what your team needs.
Moving an email from React Email to Senlo
One email at a time; the rest stay in code.
- 1
Connect your provider
Paste the same Resend or Postmark key you use today, or SMTP credentials for SES or Mailgun.
- 2
Rebuild the email
In the visual editor, with merge tags for the props your component took. There is no importer yet.
- 3
Replace one call
Swap
resend.emails.send({ react })for POST /api/triggered with the template id and data. - 4
Hand over the copy
Invite the person who owns the wording (team members are on Senlo Cloud Pro and Team). From then on, they publish changes without a deploy.
Questions
- Is Senlo a replacement for React Email?
- Not for every email. If an email is built from your own components, lives next to the code that sends it and only developers change it, React Email is the better home for it. Senlo is for the emails other people need to edit: welcome and onboarding copy, announcements in a lifecycle flow, the wording of a receipt.
- React Email 6 has a visual editor now. Why not use that?
- You can, and if you already have an admin panel it may be enough. The editor is a component: you still decide where templates are stored, who may edit which one, how to preview with real data, how to version them and how to send. Senlo is those parts already built, plus automations.
- Can I import my React Email templates?
- Not yet. HTML and MJML import is on the roadmap. Today a template is rebuilt in Senlo's editor; a typical transactional email takes well under an hour.
- Can I use both?
- Yes, and many teams should. Keep the emails that are really code in React Email, move the ones whose copy changes often to Senlo, and send both through the same Resend or Postmark account.
- Do I need a different email provider?
- No. Senlo connects to the provider you already send React Email output through: Resend, Postmark, or SMTP for SES, Mailgun or your own server. Your domain and sending setup stay as they are.
- Is Senlo free like React Email?
- The code is free (AGPL-3.0) and self-hosts with one docker compose up. The hosted version has a free plan and a paid plan for more volume and team members; the costs are in the section above.
More comparisons
Senlo next to other products, with the same honesty about what it does not do. All comparisons.
Senlo vs Customer.io
For teams that use Customer.io for transactional email and onboarding flows and pay per profile for a marketing suite around it.
Senlo vs Loops
For products on Loops that want flows which call their own API, pay for sends rather than contacts, and keep delivery with their own provider.
Senlo vs Brevo
For products that use Brevo for transactional email and onboarding flows, not campaigns, and want their own provider and no contact caps on the tier.
Senlo vs Mandrill
For teams on Mailchimp Transactional who pay for a Mailchimp plan only to keep Mandrill, and want templates that are not tied to the sender.