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

Skip to content

vtknightmare/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

  • 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

πŸ“Š 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

Quick Start with Docker Compose

  1. Clone the repository:

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

    cp env.example .env
    # Edit .env with your configuration
  3. 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
  4. Start the services:

    docker-compose up -d
  5. Access the application:

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.

Production Setup

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_PASSWORD for your external PostgreSQL
  • SMTP Settings: Configure your email provider for system emails
  • SSL: Set DB_SSLMODE=require for secure database connections

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.

About

Notifuse is an open-source & modern emailing platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 82.6%
  • TypeScript 17.2%
  • CSS 0.1%
  • HTML 0.1%
  • Makefile 0.0%
  • Shell 0.0%