Use case · Self-hosted

A self-hosted email template editor that is a whole product, not a library.

Senlo is a visual email editor with the parts around it already wired up: a template store, a transactional API, automations, and sending through your own Resend, Postmark, SES or SMTP account. Open source under AGPL-3.0, one docker compose up, your database.

On your server

Four containers: the app, a worker, Postgres and Redis. Templates, contacts and credentials never leave your infrastructure.

Nothing to integrate

Not an editor component to embed and wire to storage, rendering and sending yourself. Install it and send the first email the same day.

Your sender

Senlo never delivers mail itself. Connect the provider you already use, and keep your domain's reputation with it.

Install

Docker is the only requirement for a local try; a server needs a domain and a reverse proxy too.

Run Senlo locally
git clone https://github.com/IgorFilippov3/senlo.git
cd senlo/deploy/vps
cp env.example .env
# generate AUTH_SECRET and SECRETS_KEY, set APP_URL (see the guide)
docker compose up -d --build
# open http://localhost:3000 and create an account

On a server

The VPS guide covers the domain, Caddy or nginx in front, closing registration, creating the first users from the environment and keeping the encryption key safe. You land in an example workspace with ready-made templates to open in the editor.

What you get after docker compose up

Visual editor

Drag-and-drop rows and blocks on MJML, merge tags, conditions, tables bound to your data, saved rows to reuse.

Starter templates

A new account lands in an example workspace with ready-made templates, such as welcome, password reset and invoice, to start from.

Transactional API

POST /api/triggered sends one email from a template; an interactive reference at /api-docs on your instance.

Automations

Event triggers, waits, branches, calls to your own API and contact updates, drawn on a canvas.

Your provider

Resend, Postmark, or any SMTP server: SES, Mailgun, your own Postfix. Credentials are encrypted in your database.

Delivery you can see

Opens and clicks tracked by the instance itself; bounces and complaints from Resend and Postmark webhooks; suppressions.

Workspaces

Separate products or staging and production on one instance, each with its own templates, contacts and provider.

Your rules

Close registration, create the first users from the environment, keep everything behind your own reverse proxy.

Is Senlo the right kind of tool?

Self-hosted email tools solve different problems. Senlo is for email your product sends; here is when something else fits better.

Senlo

Transactional and lifecycle email from your app: receipts, resets, welcome series, trial reminders. Editor, API and automations in one install, sending through your provider.

An editor library

GrapesJS, Easy Email or React Email's editor, if you are building the editor into your own product and will write storage, rendering and sending around it.

A newsletter tool

listmonk, Keila or Mautic, if you mainly send campaigns to lists. They are built around subscribers and broadcasts; Senlo does not send newsletters.

An engagement suite

Dittofeed or Notifuse, if you also want segments, broadcasts and more channels in the same place, and are happy to run a bigger system.

Self-hosted or hosted

The same code either way. The difference is who runs it and whether you need a team around it.

Self-hosted, free

  • Editor, API, automations, every provider.
  • No limits on emails or automation runs.
  • You run upgrades, backups and the server.
  • No members, roles or audit log.

Senlo Cloud

  • The same product at senlo.io, nothing to install.
  • Free for one person; Pro adds members, roles and an audit log; Team lifts the member cap.
  • Postgres, Redis, the worker, backups and upgrades are ours.
  • Monthly limits on emails and runs, see pricing.

Set it up for production

  1. 1

    Point a domain

    A subdomain such as mail.example.com at the server; links in your emails will use it.

  2. 2

    Configure .env

    APP_URL, AUTH_SECRET and SECRETS_KEY; turn registration off and create the first users from the environment if you like.

  3. 3

    Start and proxy

    docker compose up -d --build, then Caddy or nginx in front for HTTPS.

  4. 4

    Connect a provider

    Add Resend, Postmark or SMTP credentials on the Providers page and send a test email.

Why people look for a self-hosted editor

Linked to the source.

“Been waiting for someone to do this without the SaaS tax.”
Hacker News, Show HN thread on an email builder, 2026
“Being stuck in Unlayer is a real thing”
Hacker News, same thread, 2026
“Eventually, I just disabled the new editor and built the email out in DW using tables like normal.”
Mautic community forum, 2021

Questions

What does AGPL-3.0 mean for me?
You can run Senlo for your own products, commercially, for free, and change it as you like. If you modify Senlo and offer it to others as a network service, you have to publish your changes under the same license.
What does the self-hosted edition not have?
Team features: members, roles and the audit log are part of the hosted Pro and Team plans. Everything else, the editor, API, automations and providers, is the same code.
What do I need to run it?
A server with Docker, a domain pointing at it and a reverse proxy such as Caddy for HTTPS. The compose file brings Postgres and Redis. The first build compiles from source and takes a few minutes.
How do I upgrade and back up?
Pull the new version and run docker compose up -d --build. Back up the Postgres volume and the SECRETS_KEY from your .env together: provider credentials are encrypted with that key and cannot be read without it.
Does it send email itself?
No. Senlo renders and decides; delivery goes through the provider you connect. That keeps IP reputation, SPF and DKIM where they belong and means you never run a mail server unless you want to.
Can I start hosted and move to self-hosted later, or the other way?
It is the same product, so the workflow carries over. There is no one-click migration between the two yet; templates are rebuilt or moved by hand.

Your server. Your templates. Your provider.

Clone the repository and send the first email from your own instance today, or start on the hosted version and decide later.

Self-hosted email template editor, open source — Senlo