SendPortal is an open-source, self-hosted email marketing platform designed for teams and organizations seeking full control over their email campaigns without relying on third-party SaaS providers. Built with Laravel and PHP 8.2+, it provides a complete solution for managing subscribers, creating email campaigns, tracking opens and clicks, and generating reports—all while integrating with major SMTP services like Amazon SES, SendGrid, Mailgun, Postmark, and Mailjet. Unlike cloud-based alternatives that charge per email or subscriber, SendPortal eliminates recurring fees by letting you host it on your own infrastructure. It’s ideal for developers, DevOps teams, and marketers who prioritize data privacy, cost efficiency, and customization in their email operations.
What You Get
- Subscriber and list management - Create, import, and segment email lists with custom fields; supports bulk CSV uploads and API-based additions.
- Email campaign creation - Design and schedule newsletters with a visual editor, supporting HTML templates and dynamic content placeholders.
- Real-time message tracking - Monitor opens, clicks, bounces, and unsubscribes with detailed analytics per campaign and recipient.
- Multi-workspace/domain support - Manage multiple brands, clients, or domains from a single instance with isolated data and user permissions.
- SMTP provider integrations - Native support for Amazon SES, Postmark, SendGrid, Mailgun, and Mailjet with easy configuration via .env or dashboard UI.
- Self-hosted deployment - Full control over data storage and infrastructure; deploy via Docker, traditional server, or cloud platforms like AWS or DigitalOcean.
Common Use Cases
- Building a multi-tenant SaaS dashboard with branded email campaigns - A SaaS company uses SendPortal to send custom-branded newsletters to each customer’s domain while maintaining centralized campaign analytics and compliance.
- Creating a low-cost email marketing system for non-profits - A nonprofit organization replaces costly Mailchimp subscriptions with SendPortal on a $5/month VPS, reducing annual email costs by 90%.
- Problem: High SaaS email fees → Solution: Self-hosted SendPortal - A startup spending $500/month on Mailchimp migrates to SendPortal on AWS SES, cutting costs to under $50/month while retaining all functionality.
- Team workflow for marketing and dev teams - DevOps engineers deploy SendPortal in Kubernetes, while marketers use the UI to create campaigns without relying on external vendors or waiting for IT.
Under The Hood
SendPortal is a Laravel-based email marketing platform designed with multi-tenant workspaces and streamlined onboarding in mind. It provides a modular, extensible architecture that supports scalable deployment and customization while maintaining adherence to Laravel conventions.
Architecture
The project follows a monolithic architecture with clear separation of concerns, leveraging Laravel’s structure to support modular functionality and maintainable code organization.
- The application is structured around dedicated directories and services that encapsulate distinct functional areas
- Modular design is supported through service classes and traits that promote clean separation between user, workspace, and core logic
- The codebase embraces Laravel’s established patterns such as service containers and command-based workflows for configuration and upgrades
Tech Stack
The platform is built using PHP and the Laravel framework, incorporating a range of ecosystem tools to support modern development practices.
- Primary language and frameworks: Built with PHP and Laravel, integrating Livewire for dynamic UI and Horizon for queue management
- Key dependencies and libraries: Utilizes Redis, MySQL, and SQLite alongside Monolog for logging and caching
- Build/development tools: Employs PHP-CS-Fixer, StyleCI, and PHPUnit to ensure consistent formatting and robust testing
- Testing frameworks: Leverages PHPUnit for unit and functional tests with well-structured test organization
Code Quality
The codebase demonstrates solid quality practices with consistent error handling and comprehensive test coverage.
- Testing approach and coverage: Extensive use of PHPUnit with structured test files and clear test scenarios
- Error handling patterns: Consistent application of Laravel’s error handling mechanisms and exception management
- Code consistency: Adherence to PHP and Laravel standards with well-defined naming conventions and code formatting
What Makes It Unique
SendPortal stands out through its modular setup and multi-tenant architecture, offering a unique blend of extensibility and ease of use.
- It introduces a step-by-step installation process with dedicated setup commands that automate environment configuration and admin creation
- Workspace-based multi-tenancy is implemented through dedicated service classes and traits that cleanly separate concerns
- The codebase supports a robust upgrade path using Laravel’s service container and command pattern for vendor assets and migrations
- Extensibility is achieved through traits like HasWorkspaces and integration with SendportalBaseServiceProvider for customization without breaking core logic