The open-source alternative to Mailchimp, Brevo, Mailjet, Listmonk, Mailerlite, and Klaviyo, Loop.so, etc.
Notifuse is a modern, self-hosted emailing platform that allows you to send newsletters and transactional emails at a fraction of the cost. Built with Go and React, it provides enterprise-grade features with the flexibility of open-source software.
- Visual Email Builder: Drag-and-drop editor with MJML components and real-time preview
- Campaign Management: Create, schedule, and send targeted email campaigns
- A/B Testing: Optimize campaigns with built-in testing for subject lines, content, and send times
- List Management: Advanced subscriber segmentation and list organization
- Contact Profiles: Rich contact management with custom fields and detailed profiles
- Transactional API: Powerful REST API for automated email delivery
- Webhook Integration: Real-time event notifications and integrations
- Liquid Templating: Dynamic content with variables like
{{ contact.first_name }} - Multi-Provider Support: Connect with Amazon SES, SendGrid, Mailgun, Postmark, Mailjet, SparkPost, and SMTP
- Open & Click Tracking: Detailed engagement metrics and campaign performance
- Real-time Analytics: Monitor delivery rates, opens, clicks, and conversions
- Campaign Reports: Comprehensive reporting and analytics dashboard
- S3 File Manager: Integrated file management with CDN delivery
- Notification Center: Centralized notification system for your applications
- Responsive Templates: Mobile-optimized email templates
- Custom Fields: Flexible contact data management
- Workspace Management: Multi-tenant support for teams and agencies
Notifuse follows clean architecture principles with clear separation of concerns:
- Domain Layer: Core business logic and entities (
internal/domain/) - Service Layer: Business logic implementation (
internal/service/) - Repository Layer: Data access and storage (
internal/repository/) - HTTP Layer: API handlers and middleware (
internal/http/)
- Console: Admin interface built with React, Ant Design, and TypeScript (
console/) - Notification Center: Embeddable widget for customer notifications (
notification_center/)
- PostgreSQL: Primary data storage with Squirrel query builder
βββ cmd/ # Application entry points
βββ internal/ # Private application code
β βββ domain/ # Business entities and logic
β βββ service/ # Business logic implementation
β βββ repository/ # Data access layer
β βββ http/ # HTTP handlers and middleware
β βββ database/ # Database configuration
βββ console/ # React-based admin interface
βββ notification_center/ # Embeddable notification widget
βββ pkg/ # Public packages
βββ config/ # Configuration files
-
Clone the repository:
git clone https://github.com/Notifuse/notifuse.git cd notifuse -
Configure environment variables:
cp env.example .env # Edit .env with your configuration -
Generate PASETO keys: Visit paseto.notifuse.com to generate your PASETO keys, or use the built-in keygen command:
# Generate keys manually make keygen # Or directly with Go go run cmd/keygen/main.go
-
Start the services:
docker-compose up -d
-
Access the application:
- Console: http://localhost:8080
- API: http://localhost:8080/api
docker-compose.yml is designed for testing and development only. For production deployments:
- Use a separate PostgreSQL database (managed service recommended)
- Configure external storage for file uploads
- Set up proper SSL/TLS termination
- Use a reverse proxy (nginx, Traefik, etc.)
The docker-compose includes a PostgreSQL container for quick testing. Simply run docker-compose up -d to get started.
Copy env.example to .env and configure:
- Required:
ROOT_EMAIL,API_ENDPOINT,PASETO_PRIVATE_KEY,PASETO_PUBLIC_KEY - Database: Configure
DB_HOST,DB_USER,DB_PASSWORDfor your external PostgreSQL - SMTP Settings: Configure your email provider for system emails
- SSL: Set
DB_SSLMODE=requirefor secure database connections
For detailed installation instructions, configuration options, and setup guides, visit docs.notifuse.com.
- Complete Documentation - Comprehensive guides and tutorials
We welcome contributions!
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
Notifuse is released under the GNU Affero General Public License v3.0.
- Documentation: docs.notifuse.com
- Email Support: [email protected]
- GitHub Issues: Report bugs or request features
- π° Cost-Effective: Self-hosted solution with no per-email pricing
- π Privacy-First: Your data stays on your infrastructure
- π οΈ Customizable: Open-source with extensive customization options
- π Scalable: Built to handle millions of emails
- π Modern: Built with modern technologies and best practices
- π§ Developer-Friendly: Comprehensive API and webhook support
Ready to get started? Try the live demo or deploy your own instance in minutes.