Repolode
bborn

bborn/lewsnetter

Self-hostable email marketing platform on Rails and AWS SES, with a built-in AI agent and an MCP server for drafting, segmenting and sending campaigns.

Open-source alternative to:MailchimpConvertKit

Stars
330
Forks
41
Open issues
0
Last commit
3 days ago

What is it?

Lewsnetter is an open-source email campaign application. You write campaign bodies in markdown with Liquid placeholders, render them through reusable MJML templates, and send them through your own Amazon SES account with per-team credentials. Bounces and complaints flow back through SNS webhooks, and the app includes subscription management and basic send statistics.

Audience segmentation works with SQL-style predicates over subscriber and company custom attributes stored as JSON. A built-in chat panel, backed by ruby_llm and Anthropic Claude by default, can translate natural-language audience descriptions into predicates, draft campaigns and analyze sends.

The app also exposes an MCP server at /mcp/messages with OAuth 2.1 dynamic client registration, so tools such as Claude Desktop or Cursor can call the same campaign, subscriber and template operations the in-app agent uses. It runs on Rails 8 with SQLite and deploys with Kamal.

Key features

  • 01Write campaigns in markdown with Liquid personalization and MJML templates
  • 02Send through your own AWS SES account with per-team credentials
  • 03Handle bounces and complaints via SNS webhooks
  • 04Segment audiences with SQL predicates or natural-language requests
  • 05Built-in AI chat agent powered by ruby_llm
  • 06MCP server with OAuth 2.1 dynamic client registration

Use cases

  • Running a self-hosted newsletter on your own AWS SES account
  • Letting an AI agent in Claude Desktop or Cursor draft and schedule campaigns
  • Syncing subscriber data from a Rails app into a mailing list

Quick start

  1. 1

    Clone the repository

    git clone https://github.com/bborn/lewsnetter.git
  2. 2

    Enter the project directory

    cd lewsnetter
  3. 3

    Install dependencies and create the dev database

    bin/setup
  4. 4

    Start the dev server, then open http://localhost:3000

    bin/dev

Things to know

  • Pre-1.0 and has rough edges, so expect breaking changes.
  • Sending requires your own AWS SES account and setup.
  • The AI agent needs an Anthropic API key or another supported LLM provider key.
  • Production self-hosting requires a VPS and a Kamal deploy, which takes real effort.

In collections

Topics

FAQ

What is lewsnetter?
Self-hostable email marketing platform on Rails and AWS SES, with a built-in AI agent and an MCP server for drafting, segmenting and sending campaigns. Lewsnetter is an open-source email campaign application. You write campaign bodies in markdown with Liquid placeholders, render them through reusable MJML templates, and send them through your own Amazon SES account with per-team credentials. Bounces and complaints flow back through SNS webhooks, and the app includes subscription management and basic send statistics.
Is lewsnetter free to use? What license does it have?
lewsnetter is open source under the MIT license. Check the license terms before using it in commercial products.
Is lewsnetter still maintained?
Actively maintained. The last commit to lewsnetter was on Nov 3, 2026.
What can I use lewsnetter for?
Running a self-hosted newsletter on your own AWS SES account Letting an AI agent in Claude Desktop or Cursor draft and schedule campaigns Syncing subscriber data from a Rails app into a mailing list
How do I install lewsnetter?
Clone the repository: git clone https://github.com/bborn/lewsnetter.git Enter the project directory: cd lewsnetter Install dependencies and create the dev database: bin/setup Start the dev server, then open http://localhost:3000: bin/dev
Where can I get lewsnetter?
The source code and installation instructions are on GitHub: https://github.com/bborn/lewsnetter

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects