SendPortal is a self-hosted email marketing platform built on Laravel and PHP, designed for teams and businesses that want full control over their subscriber data and email infrastructure. It eliminates vendor lock-in and recurring SaaS fees by enabling users to run their own email campaigns on their servers. Ideal for developers, marketers, and organizations with compliance or cost concerns, SendPortal provides a complete alternative to Mailchimp and Campaign Monitor.
Built on Laravel 10+ with PHP 8.2+, SendPortal supports MySQL and PostgreSQL, and integrates natively with major SMTP providers like Amazon SES, SendGrid, and Mailgun. It can be deployed as a standalone application or embedded as a package into existing Laravel apps, offering flexibility for both new and established systems.
What You Get
- Subscriber & List Management - Import, update, and segment subscribers via CSV upload or REST API; tag and filter audiences dynamically for targeted campaigns.
- Email Campaign Builder - Create and schedule email campaigns using customizable HTML templates with WYSIWYG editing and A/B testing support.
- Message Tracking - Real-time analytics for opens, clicks, bounces, and unsubscribes per campaign, with detailed per-subscriber delivery logs.
- Multi-Workspace Support - Manage multiple teams, brands, or clients from a single interface with isolated data, users, and settings per workspace.
- SMTP Provider Integration - Native support for Amazon SES, Postmark, SendGrid, Mailgun, Mailjet, and custom SMTP servers with configuration validation and failover.
- REST API - Full-featured API to programmatically manage subscribers, tags, campaigns, and reports—enabling integration with CRM, e-commerce, or custom apps.
Common Use Cases
- Running a paid membership newsletter - A journalist uses SendPortal to publish subscriber-only content behind a paywall, tracking opens and clicks to optimize engagement without relying on Mailchimp’s pricing tiers.
- Managing email campaigns for multiple clients - A digital agency hosts SendPortal to serve 10+ client newsletters from one dashboard, keeping each client’s data isolated in separate workspaces.
- Compliance-sensitive email marketing - A healthcare nonprofit self-hosts SendPortal to ensure GDPR and HIPAA compliance by retaining all subscriber data on their private servers.
- Integrating email into an existing Laravel app - A SaaS startup embeds SendPortal Core as a package to add newsletter functionality to their user portal without building from scratch.
Under The Hood
Architecture
- Employs Laravel’s MVC pattern with clear separation of concerns, delegating business logic to dedicated service classes to enforce single responsibility
- Implements a step-based setup system via the StepInterface pattern, enabling extensible and testable configuration workflows with dynamic handler resolution
- Uses modular design through a core package dependency, allowing clean separation between foundational functionality and application-specific layers
- Applies dependency injection consistently across controllers and services, promoting loose coupling and testability
- Structures routing and middleware with distinct web and API groups, adhering to Laravel conventions for maintainability
Tech Stack
- Powered by PHP 8.2/8.3 and Laravel 11 with Livewire 3 for reactive, server-rendered UI components
- Utilizes Laravel Horizon for Redis-backed queue processing and Eloquent ORM for database interactions with migrations
- Integrates Vue.js via Laravel UI for component-driven frontend experiences with seamless server-client coordination
- Relies on Composer for dependency management and autoloading, with PHPUnit and Mockery for comprehensive testing
- Enforces code consistency with StyleCI and EditorConfig across PHP, JavaScript, and CSS, and supports Docker and CI/CD workflows
Code Quality
- Features an extensive test suite covering authentication, permissions, and invitation flows with robust assertions on HTTP responses and database state
- Maintains clear separation of concerns with reusable test traits and consistent use of strict typing, PHPDoc, and Laravel conventions
- Implements strong authorization patterns via middleware and model relationships, with tests validating role-based access controls
- Relies on Laravel’s built-in exception and HTTP status handling rather than custom error classes, keeping the codebase lean
- Demonstrates high code readability through strict type-hinting, consistent naming, and adherence to framework standards
What Makes It Unique
- Features a multi-tenant workspace architecture with isolated data contexts to enable secure team collaboration
- Implements a dynamic permission system tied to workspace roles, eliminating the need for separate user accounts per team
- Offers a first-class invitation system with auto-expiring tokens and role assignment for frictionless onboarding
- Delivers a stateful, Livewire-powered setup wizard that mimics a native SPA experience without client-side framework complexity
- Includes a unified email rendering engine with template variables and dynamic blocks, empowering non-technical users to create campaigns
- Embeds open/click analytics directly into the email pipeline, removing dependency on external tracking services