Open source · AGPL-3.0
Templates and automations for transactional email.
Senlo sits on top of the delivery provider you already pay for: Resend, Postmark or any SMTP server. You get a visual editor, lifecycle automations and a clean API. Your provider keeps delivering.
Free for one person: 3,000 emails a month, no card.
How it works
Connect your provider
Paste a Resend or Postmark key, or SMTP credentials for SES, Mailgun or your own server. Senlo never sends from its own infrastructure: your domain, your reputation, your provider's bill.
Build the template
Drag rows and blocks, add merge tags and conditions, preview with real data. Every template is versioned and lives in a workspace, so staging and production stay apart.
Trigger it, or let an automation
One request sends a transactional email from a template. One event starts an onboarding sequence that waits, checks your API and branches.
curl -X POST https://senlo.io/api/triggered \
-H "Authorization: Bearer snl_..." \
-H "Content-Type: application/json" \
-d '{
"id": "order-confirmation",
"to": "customer@example.com",
"data": {
"order": { "number": "A-1049", "total": "42.00" }
}
}'POST /api/events
{ "type": "contact_added", "email": "new@example.com" }
→ creates the contact and starts every automation
whose trigger listens for contact_addedA visual editor your team can use
Rows, columns, merge tags and conditions, with versions you can roll back to. Developers get the same template through the API; nobody writes MJML by hand.

Automations that branch on your own data
Send, wait, then ask your API whether the user did the thing and take a different path. Every node shows how many contacts are in it right now.

Delivery you can actually see
Sends, deliveries, bounces and engagement per workspace, a live feed of what went wrong, and suppressions before a bad address hurts your reputation.

An API, not a black box
Two endpoints do the work: one sends a transactional email from a template, the other feeds contact events into automations. The interactive reference lives at /api-docs.

Not another email provider
Resend, Postmark and SES are good at delivering mail. They are not where your team wants to edit a template, version it, or draw an onboarding sequence. Senlo is that layer: it renders, personalises, tracks and decides, then hands the message to the provider you chose. Switch providers without touching a template.
Open source, two ways to run it
Senlo is AGPL-3.0 on GitHub. Self-host it with one docker compose up and keep everything on your servers, free. Or sign up here and skip the Postgres, Redis, worker, backups and upgrades: the same product, hosted, with teams and roles on top.
Coming from Customer.io, Loops, Brevo or React Email?
All comparisonsFeatures side by side, what a month costs with your provider's bill included, and a plain list of reasons to stay where you are.
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.
Senlo vs React Email
For teams that write emails as React components and want people who do not write code to edit them without a pull request and a deploy.
Pricing
Details and FAQ- 3,000 emails a month
- 1,000 workflow runs a month
- 1 member (just you)
- 3 workspaces
- No audit log
- Every provider: Resend, Postmark, SMTP
- Visual editor, automations, API
- 50,000 emails a month
- 10,000 workflow runs a month
- 5 members
- Unlimited workspaces
- 30-day audit log
- Every provider: Resend, Postmark, SMTP
- Visual editor, automations, API