Skip to content

dontic/sesy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo Logo Dark Mode

Self-hosted email campaign management, powered by AWS SES.

GitHub Release Docker Pulls GitHub Repo stars

⚠️ Sesy is still in beta and not yet recommended for production use.

👋 Beta testers are welcomed!

Hero image


What is Sesy?

Sesy is an open-source, self-hosted email campaign platform built on top of AWS Simple Email Service (SES). It gives you a clean web interface to manage your entire email operation: From configuring AWS credentials and verifying domains, to building audiences and sending campaigns, with minimal AWS configuration.

Why Sesy instead of the alternatives?

Sesy Brevo Mailchimp Loops Sendy
Self-hosted
Open source
Your data, your servers
No per-email fees
No monthly subscriber limits
Modern UI 🤷‍♂️ 🤷‍♂️
REST API
Docker one-command deploy

Other tools charge based on the number of contacts or emails sent, and you hand your audience data over to a third party.

Sesy is free, open-source, and deploys in minutes with Docker. Your data lives on your own infrastructure, and your only sending cost is AWS SES ($1 per 10,000 emails).

Compare that to Mailchimp at ~$350/month for 50,000 contacts, or Brevo at ~$65/month for 100,000 emails. A list of 50,000 subscribers receiving a weekly newsletter would cost around $20/month on AWS SES versus hundreds on a SaaS platform.


Features

  • AWS SES management - Sesy configures everything in AWS for you, because we all hate AWS console. Just set your AWS credentials and region
  • Domain verification - Guided DNS record setup so you can send emails from your domain
  • Audience management - Import contacts via CSV, organize with tags, track subscription status
  • Campaign editor - Simple HTML email editor with per-subscriber personalization (i.e. first_name) and automatic unsubscribe footers
  • Async sending - Campaigns send in the background, respecting your SES rate limits
  • API - Full API with docs and API key authentication, so you can manage audience members programatically
  • Campaign statistics - [In the works] See how many opens and clicks your campaign had.
  • Transactional emails - [In the works] Send transactional emails (login codes, password resets, etc.)
  • One-click unsubscribe commpliant - All campaign emails are automatically sent with a mandatory "Unsubscribe here" footer. Sesy provides a one-click unsubscribe workflow for audience members.
  • One-command deployment - Complete stack (app, worker, scheduler, DB, cache, proxy) via Docker Compose

Getting Started

⚠️ You will need an AWS account with SES out of sandbox (production) mode. Click here for a quick guide on how to do it.

  1. Copy docker-compose.yml from this repo
  2. Update the environment variables in the compose file to match your domain
  3. Run docker compose up -d
  4. Open http://localhost:8080
  5. Log in with username admin / password admin
  6. The app will guide you trough all the steps.

Updating Sesy

Sesy is easily updateable with docker.

⚠️ Always read the release notes before updating!

  1. docker compose pull
  2. docker compose up -d

Roadmap

  • Configure AWS SES fully from the app
  • Adding audience members via API
  • Domain verification
  • Onboarding flow on first deployment
  • SES configuration alerts (i.e. prevent sending campaigns if SES is not properly configured)
  • Campaign statistics via SES event webhooks
  • Batch audience member edits
  • Transactional emails

Collaborating

Contributions are welcome! Whether it's bug reports, feature requests, or pull requests, all input is appreciated.

  • Bug reports & feature requests — Open an issue on GitHub describing the problem or idea
  • Pull requests — Fork the repo, create a branch, make your changes, and open a PR against main.
  • Roadmap items — If you want to work on something from the roadmap, open an issue first so we can coordinate

Please keep PRs focused — one feature or fix per PR makes review much easier.

Stack info

  • Backend - [Python] - Django REST API + celery workers
  • Frontned - [Typescript] - React + tailwindcss + shadcnUI
  • Deployment - Docker