MCPSERV.CLUB
Keila

Keila

Self-Hosted

Open‑source newsletter tool for easy, privacy‑focused email campaigns

Active(88)
1.8kstars
0views
Updated 1 day ago
Keila screenshot

Overview

Discover what makes Keila powerful

Keila is a self‑hosted, open‑source platform that consolidates newsletter creation, contact list management, and email delivery into a single, developer‑friendly stack. Built with modern web technologies, it exposes a RESTful API and WebSocket endpoints that allow tight integration with external services or custom front‑ends. The core engine is written in **Go**, leveraging the high concurrency model for handling large volumes of email dispatches, while the front‑end is a **React** application powered by **TypeScript** and **Tailwind CSS**, ensuring type safety and rapid UI iteration. Data persistence relies on a relational database (PostgreSQL by default) with optional support for **SQLite** in lightweight deployments, and the application can be extended via a plugin architecture that follows Go’s `plugin` package conventions.

Backend

Frontend

Database

Email Delivery

Overview

Keila is a self‑hosted, open‑source platform that consolidates newsletter creation, contact list management, and email delivery into a single, developer‑friendly stack. Built with modern web technologies, it exposes a RESTful API and WebSocket endpoints that allow tight integration with external services or custom front‑ends. The core engine is written in Go, leveraging the high concurrency model for handling large volumes of email dispatches, while the front‑end is a React application powered by TypeScript and Tailwind CSS, ensuring type safety and rapid UI iteration. Data persistence relies on a relational database (PostgreSQL by default) with optional support for SQLite in lightweight deployments, and the application can be extended via a plugin architecture that follows Go’s plugin package conventions.

Architecture

  • Backend – Go 1.22, Gorilla Mux for routing, GORM for ORM, and a custom SMTP/SES/Mailgun/Postmark adapter layer. The service exposes JSON‑API endpoints for campaigns, lists, and statistics, while a WebSocket channel streams real‑time delivery metrics.
  • Frontend – React 18, Vite build tool, TypeScript, and a block‑based editor built on top of MJML for responsive email templates. The editor supports Markdown, WYSIWYG editing, and raw MJML, giving developers the freedom to choose their preferred workflow.
  • Database – PostgreSQL (recommended) with optional SQLite for single‑node or CI environments. The schema is auto‑migrated via GORM, and the application ships with a seed script for initial data.
  • Email Delivery – A pluggable transport layer that supports raw SMTP, AWS SES, SendGrid, Mailgun, and Postmark. Each provider can be configured via environment variables or a UI form, allowing developers to swap providers without code changes.
  • Containerization – A multi‑stage Dockerfile produces a slim Alpine image (pentacent/keila) that runs the Go binary and serves static assets. The repo also includes a ready‑to‑use docker-compose.yml that wires the API, front‑end, PostgreSQL, and optional Redis for rate limiting.

Core Capabilities

  • Campaign Management – Create, schedule, and send campaigns with granular targeting (list segmentation, custom fields).
  • Editor APIs – Expose editor state via JSON for integration with external content management systems or custom editors.
  • Webhook Support – Register callbacks for delivery events (open, click, bounce) and subscriber actions (unsubscribe, double opt‑in).
  • Analytics – Real‑time dashboards and exportable CSV reports; privacy‑first design allows disabling tracking pixels.
  • Plugin System – Load Go plugins at runtime to add new transport adapters, authentication backends, or custom reporting modules.
  • Extensibility – Public REST endpoints for CRUD operations on lists, subscribers, and templates; GraphQL support is planned in future releases.

Deployment & Infrastructure

Keila’s lightweight image (~80 MB) can run on any Linux distribution that supports Docker or Podman. For production, the recommended stack is:

  1. Docker Swarm / Kubernetes – Deploy the API and front‑end as separate services, scaling horizontally behind a load balancer.
  2. PostgreSQL Cluster – Use Patroni or PgBouncer for high availability and connection pooling.
  3. Redis – Optional, for job queues (Celery‑style) and rate limiting of email sends.
  4. TLS Termination – Let an external reverse proxy (NGINX, Traefik) handle HTTPS; Keila itself serves over HTTP within the cluster.
  5. Backup Strategy – Regular PostgreSQL dumps and persistent volume snapshots; the Docker image exposes a /backup endpoint for automated exports.

Integration & Extensibility

Developers can embed Keila’s editor into their own portals via an iframe or the provided React component library. The API supports OAuth2 authentication, making it easy to integrate with existing identity providers. Custom webhook endpoints allow downstream systems (CRM, analytics) to react instantly to subscriber actions. The plugin architecture lets teams write Go modules that hook into the email dispatch pipeline, enabling features like custom throttling or AI‑generated subject lines without modifying core code.

Developer Experience

  • Documentation – A comprehensive docs site (docs.keila.io) covers API reference, plugin development guides, and deployment best practices.
  • Community – Active GitHub discussions, a public Mastodon handle, and sponsorship options foster rapid issue resolution.
  • Configuration – Environment‑driven config (dotenv, Kubernetes secrets) keeps credentials out of source control.
  • Testing – The repository includes unit and integration tests with a GitHub Actions CI pipeline that runs on every push, ensuring regression safety.

Use Cases

  1. Open‑Source Projects – Maintain a mailing list for contributors and release notes while keeping all data on-premises.
  2. Enterprise Intranet – Distribute internal newsletters with GDPR‑compliant tracking, hosted entirely within the corporate network.
  3. SaaS Products – Offer a self‑hosted newsletter module as part of a larger product suite, leveraging Keila’s API for seamless integration.
  4. Event Organizers – Manage registrations and send event updates via email, using Keila’s segmentation to target attendees by session interest

Open SourceReady to get started?

Join the community and start self-hosting Keila today