Open-source email marketing platform
- TypeScript
- PostgreSQL
- Redis
- Bull MQ
- Nextjs
- Tailwind CSS
- shadcn/ui
SendLit is being bootstrapped by extracting the email composing/sending/
automation capabilities out of CourseLit
and reusing the OAuth2 implementation from
MediaLit's API. See
ARCHITECTURE.md for the full migration plan. apps/api
(including its MCP server), packages/email-editor, packages/email-blocks
and apps/web are built and have been validated end-to-end (OAuth login,
contacts, templates, broadcasts and sequences, including the automation/
delivery loop, and raw JSON-RPC calls against the MCP server). Account-wide
analytics, bounce handling and multi-user accounts are still on the roadmap.
apps/api— OAuth2-protected REST API: contacts, templates, broadcasts/ sequences, mail sending and automation.apps/web— the dashboard UI (Next.js): sign in, manage contacts, compose templates/broadcasts/sequences, start/pause automations.packages/email-editor— the WYSIWYG email editor (@sendlit/email-editor).packages/email-blocks— headless composing blocks for broadcasts/ sequences/templates (@sendlit/email-blocks), used byapps/web.
- Start Postgres and Redis (e.g. via Docker).
apps/api: copy.env.exampleto.env, fill in the values, thenpnpm --filter @sendlit/api db:pushandpnpm --filter @sendlit/api dev.apps/web: copy.env.exampleto.env.local(API_URLpointing at the API above), thenpnpm --filter @sendlit/web dev.- Build the two shared packages at least once so
apps/webhas something to import:pnpm --filter @sendlit/email-editor build && pnpm --filter @sendlit/email-blocks build(re-run, or use theirdevscripts, after changing either package).