Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Notifuse is an open-source & modern emailing platform

License

Notifuse/notifuse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Notifuse

Go Report Card Go codecov

🎯 Try the Live Demo

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.

Email Editor

πŸš€ Key Features

πŸ“§ Email Marketing

  • 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

πŸ”§ Developer-Friendly

  • Easy Setup: Interactive setup wizard for quick deployment and configuration
  • 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, Mailgun, Postmark, Mailjet, SparkPost, and SMTP

πŸ“Š Analytics & Insights

  • 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

🎨 Advanced Features

  • 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

πŸ—οΈ Architecture

Notifuse follows clean architecture principles with clear separation of concerns:

Backend (Go)

  • 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/)

Frontend (React)

  • Console: Admin interface built with React, Ant Design, and TypeScript (console/)
  • Notification Center: Embeddable widget for customer notifications (notification_center/)

Database

  • PostgreSQL: Primary data storage with Squirrel query builder

πŸ“ Project Structure

β”œβ”€β”€ 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

πŸš€ Getting Started

One-click deployment

Deploy on Railway

Quick Start with Docker Compose

  1. Clone the repository:

    git clone https://github.com/Notifuse/notifuse.git
    cd notifuse
  2. Configure required environment variables:

    cp env.example .env
    # Edit .env with database credentials and SECRET_KEY

    Minimum required variables: DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, SECRET_KEY

  3. Start the services:

    docker-compose up -d
  4. Access the application and complete setup:

    • Open http://localhost:8080
    • Follow the interactive Setup Wizard to configure:
      • Root administrator email
      • API endpoint
      • SMTP settings
      • PASETO keys (automatically generated)
    • Save the generated keys securely!

Alternative: You can skip the setup wizard by pre-configuring all environment variables in your .env file. Generate PASETO keys at paseto.notifuse.com or use make keygen.

Environment Configuration

⚠️ Important: The included 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.)

Development Setup

The docker-compose includes a PostgreSQL container for quick testing. Simply run docker-compose up -d to get started, then complete the setup wizard in your browser.

Production Setup

Required Environment Variables:

  • DB_HOST, DB_PORT, DB_USER, DB_PASSWORD - External PostgreSQL database
  • SECRET_KEY - Secret key for encrypting sensitive data (or PASETO_PRIVATE_KEY as fallback)
  • DB_SSLMODE=require - For secure database connections

Optional (can be configured via Setup Wizard or environment variables):

  • ROOT_EMAIL - Root administrator email
  • API_ENDPOINT - Public API endpoint URL
  • PASETO_PRIVATE_KEY, PASETO_PUBLIC_KEY - Authentication keys (auto-generated in wizard)
  • SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD - Email provider settings
  • SMTP_FROM_EMAIL, SMTP_FROM_NAME - From address and name

Note: Environment variables always take precedence over database settings configured via the setup wizard.

For detailed installation instructions, configuration options, and setup guides, visit docs.notifuse.com.

πŸ“š Documentation

🀝 Contributing

We welcome contributions!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

πŸ“„ License

Notifuse is released under the GNU Affero General Public License v3.0.

πŸ†˜ Support

🌟 Why Choose Notifuse?

  • πŸ’° 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.