What does an email newsletter platform cost to run yourself?
The software license is not the cost. listmonk is licensed under the AGPL v3, Mautic under GPL-3.0 and Dittofeed under MIT, so you pay nothing per subscriber or per send for the platform itself. What you do pay for is the infrastructure that runs it (a server or cluster, PostgreSQL for listmonk, or PHP, MySQL or MariaDB, cron and queue workers for Mautic), a sending service that delivers the mail, implementation, ongoing support and the internal staff time that keeps it patched, monitored and compliant. Compare those lines against your current SaaS invoice, not against zero.
The total moves with four drivers: send volume, where the subscriber data must live, the compliance scope you have to evidence, and the skills already on your team. Volume mainly changes the sending service bill and the size of the database and queues. Data location decides whether you need a private cloud or on-premises footprint, and whether backups and logs count as in scope. Compliance scope adds logging, retention and access reviews that recur every cycle. Ask any partner or vendor for a quote that separates one-time setup from monthly infrastructure, sending fees, support hours and assumed internal effort, and confirm which of those costs are included in the fixed scope.
A partner can shorten the build and reduce early mistakes in configuration, authentication and deliverability setup, but it does not remove recurring work. Someone still has to apply upgrades, rotate credentials, process bounces and complaints, review access and restore from backups. Before you decide, confirm the current release status of your chosen platform with its project, and check that your in-house team can own the cron jobs, queues and sending configuration after go-live. The cheapest option on paper is often the one where the people who understand the setup leave with no handover.
Which cost components sit in-house, with a partner, or in SaaS
This table maps each cost component of a self-hosted newsletter platform to who carries it under a build, partner or SaaS model, and whether it is one-time or recurring. Read each row across the three columns to see where the spend and effort move, and treat SaaS cells as vendor subscriptions whose prices come from the vendor's own published terms.
| Cost component | Build in-house | Partner-led implementation | SaaS subscription |
|---|---|---|---|
| Software license | No fee for open-source platforms such as listmonk (AGPL v3) or Mautic (GPL-3.0); confirm license obligations for modified code | Same open-source license; partner fee covers configuration, not the software | Vendor subscription, priced by the vendor, usually recurring |
| Hosting and database | Recurring cloud or data center cost for application servers and PostgreSQL or MySQL | Usually the same recurring infrastructure, billed to your account; confirm who operates it | Included in the vendor subscription; hosting location fixed by the vendor |
| Sending service and SMTP or API volume | Recurring fees from your own SMTP or email API provider, billed by volume | Same recurring sending fees, set in your contract with the provider | Often bundled or metered by the vendor; confirm volume tiers and overage terms |
| Implementation and integrations | One-time internal engineering for setup, templates, SSO and CRM or data links | One-time fixed-scope fee agreed in writing before work starts | Vendor onboarding, plus your own one-time integration work |
| Migration of subscriber lists | One-time internal effort to export, deduplicate and verify consent records | One-time scoped task, including consent evidence transfer | One-time export and import effort, often with vendor-specific limits to confirm |
| Security testing | Recurring if run internally; one-time for initial assessment of the deployment | One-time or retainer scope for testing the hosted platform and integrations | Vendor's own testing reports, usually available on request; confirm scope |
| Upgrades and patching | Recurring internal staff time for release tracking, testing and deployment | Recurring retainer or scoped upgrade work, agreed in writing | Included in subscription; confirm upgrade timing and downtime terms |
| Support and monitoring | Recurring on-call and bounce, complaint and queue monitoring by your team | Recurring support retainer; SLA terms are set in the contract, not assumed | Vendor support tier, recurring; response targets as stated in the vendor's terms |
| Internal staff time | Ongoing ownership of platform, sending reputation and compliance evidence | Lower internal load, but a named owner is still required | Lower platform work, but list and content ownership remains internal |
Which costs are one-time and which recur every month
The first split to make in any budget is between setup work and recurring work. Setup covers installation, the template build, single sign-on, the data migration from an existing list or SaaS tool, and the DNS and sender authentication records that a sending domain needs before the first campaign goes out. These are largely one-time costs, paid to whoever performs the work, whether that is your own staff, a contractor or an implementation partner. A fixed-scope quote should list each of these items separately so you can see what ends at go-live.
The recurring side is where many self-hosted estimates go wrong. Hosting, sending volume, security patching, version upgrades, list hygiene, and the monitoring of scheduled jobs and queues continue for the life of the platform. The operating duties are concrete. listmonk needs only PostgreSQL as its dependency, but that database must be backed up, upgraded and kept reachable, and its sending queues need watching. Mautic depends on cron jobs for segment updates, campaign updates and campaign triggers, plus a broadcasts command and a messenger consumer when emails are queued. If any of those stop, sends stall without a visible error in the campaign screen. Someone must own those jobs after go-live.
Ask any proposal to name the owner, frequency and source of each recurring duty, and whether ongoing support, upgrades and continuous testing are priced as a retainer. Confirm the Mautic release and PHP versions you plan to run against the current support windows on the Mautic releases page before you commit, because a major upgrade can become a project of its own. Recurring costs are also the ones most affected by volume and list growth, so record the expected monthly send count and subscriber growth in the requirements, and ask the vendor or partner to price against those numbers.
What moves each cost line up or down
Six drivers shape what you pay for in-house build, implementation partner work and SaaS subscriptions. Most of them touch more than one line, so a quote should show how each driver was priced rather than a single total.
Subscriber and send volume
Subscriber count and sends per month drive the size of the database, the queue capacity and the sending bill from your email service. In a SaaS product, the subscription usually scales with contacts or sends, so growth raises that line directly. Self-hosted listmonk or Mautic costs mostly track infrastructure and the sending service, which grow more slowly. Ask a partner to model peak campaign volume, not only the average, because peak sizing sets the server and sending-service tier.
Sending service choice
Self-hosting the platform does not remove the cost of sending mail. Dittofeed integrates with providers such as SendGrid and Amazon SES rather than sending email itself, and listmonk relays through SMTP servers you configure. The per-message price, the IP warm-up effort and the bounce handling all sit with the provider you choose, so compare those terms before comparing platform fees.
Number of channels
An email-only newsletter needs one sending path and one set of templates. Adding SMS, WhatsApp or push adds a provider contract, a template approval process for some channels and more testing. listmonk messengers deliver through HTTP webhooks, and Dittofeed covers email, mobile push, SMS, WhatsApp and Slack, so each added channel raises integration and support effort rather than a licence fee.
CRM and identity integrations
Connectors to HubSpot or Salesforce are often the largest unplanned item. Mautic publishes plugin documentation for both, but each connector needs field mapping, sync rules and testing against your own CRM tenant. Single sign-on for staff senders through OIDC in listmonk, or the authentication options in Mautic, adds identity configuration and access reviews. Confirm which connectors are in scope before any quote is accepted.
Compliance and data residency scope
Keeping subscriber data and sent communications inside your own infrastructure removes per-subscriber fees for hosting data elsewhere, but it moves retention, backups, audit logs and consent records into your scope. Each jurisdiction you send into adds consent and unsubscribe rules to build and document. Ask what evidence a partner will deliver for each regime, and remember that a partner prepares controls for assessment but does not certify them.
Internal skills and staffing model
Building in-house means paying for engineers who can run PostgreSQL or PHP, cron-driven jobs in Mautic and deliverability monitoring, usually every month. A partner shifts part of that cost into a fixed-scope implementation and an optional support retainer. A SaaS subscription shifts it almost entirely to the vendor, but leaves you with less control over upgrades and data. Ask who on your team will own patching and bounce monitoring after go-live.
How the cost differs between listmonk, Mautic and Dittofeed
listmonk is distributed as a standalone binary with PostgreSQL as its only dependency, so the infrastructure line is mostly one application host and one database. Its licence is AGPL v3, which means the software itself carries no fee, but any modifications you distribute or expose over a network carry source obligations that your counsel should review. Sending capacity is built in: multi-threaded queues run across several SMTP servers with rate limiting, and a transactional API handles pre-defined templates. The project claims that a campaign of more than 7 million emails ran at a fraction of one CPU core and 57 MB of peak memory, but that is the project's own claim and should be tested in your environment before you budget for it.
- Single database dependency: PostgreSQL is the only required service, which keeps the hosting bill and the backup scope small.
- Built-in queues and rate limits: Sending throughput is set in the application, so the main recurring cost is the sending service, not extra worker infrastructure.
- Transactional API included: Receipts and alerts can reuse the same platform, which may reduce a separate transactional tool, subject to your deliverability design.
- Project resource claim: Ask an implementation partner to reproduce the 7 million email figure on your hardware and sending provider.
- Staff time: Upgrades, SMTP credential rotation and bounce handling remain internal or partner work.
Before you compare quotes, confirm the current release line, the backup approach for PostgreSQL and who owns sending domain authentication.
Mautic is a PHP and Symfony application, and its requirements drive a larger infrastructure line than listmonk. The project states that it should not be installed on shared hosting and recommends a VPS or dedicated server. Mautic 7.0 requires PHP 8.2 to 8.5, MySQL 5.7 or higher with InnoDB or MariaDB 10.2 or higher, and a supported web server, and npm is needed from version 5.0 onward. Background processing is also a recurring cost: segment updates, campaign updates and triggers run from staggered cron jobs, a broadcasts command sends segment emails, and a messenger consumer is needed when emails are queued.
- Hosting tier: A VPS or dedicated server is the stated minimum, so the host is sized above a basic listmonk instance.
- Stack maintenance: PHP, database and Composer dependencies must be patched in step with each Mautic release.
- Workers and scheduling: Cron and messenger processes need monitoring, because a silent failure stops campaigns without an obvious error.
- Release windows: Mautic 7.2 (Absolunto) has active and security support until 30 September 2026, and Mautic 7.3 is planned as the long-term support release with security support through 31 December 2027. Choosing 7.3 when it ships may reduce upgrade frequency.
- Software licence: The software is GPL-3.0 with no paid edition, but managed hosting is sold separately by third parties.
Before you commit, confirm which release line you will run, the support end date for that line and who runs the cron and messenger processes after go-live.
Dittofeed is MIT licensed and describes itself as free forever, so the software line is zero by licence. Its cost profile differs because it does not send email itself. It integrates with providers such as SendGrid or Amazon SES, so the sending provider's per-message pricing becomes the main variable cost, and that provider relationship must be set up and monitored. Dittofeed says self-hosting keeps personal data inside your own VPC and avoids volume-based pricing, and it documents Docker Compose and Render deployments, with Helm charts in its repository. Its recent GitHub releases are pre-release tags, with v0.24.0-alpha.21 published on October 4, 2026, so a production plan should account for API and schema change.
- Sending provider fees: Expect a separate, usage-based bill from the email service provider, which is typically the largest recurring line.
- Pre-release status: Recent tags are alpha builds, so budget for testing each upgrade and for a rollback plan.
- Engineering effort: Journeys, segments and templates are configured in code or the API, which raises the share of developer time compared with a form-driven tool.
- Git-based workflow: Version control and CI testing for campaigns add setup work that pays off across many releases.
- Hosting choice: Docker Compose, Render or Helm each carry different operations effort.
Before you compare quotes, confirm the production-ready release your partner will certify, the sending provider contract and who owns upgrades.
When an implementation partner costs less than building alone
A partner shortens the path to a working, secured platform when the in-house team lacks the skills the deployment needs. listmonk is a Go backend with a Vue frontend and PostgreSQL as its only dependency, while Mautic is PHP on Symfony with MySQL or MariaDB, cron jobs and a messenger consumer, and Dittofeed brings its own Helm charts and CI-based campaign testing. If nobody on staff can operate those stacks, every upgrade, patch and debugging session becomes a hiring or training cost. A partner also makes sense when the deployment must run in your own cloud account or data center on a fixed scope agreed in writing before work starts, because the scope, deliverables and timeline then carry the risk instead of an open-ended internal project. Ask for the scope to name the sending service integration, the SSO setup, backups and the upgrade path for each component.
Compliance evidence is the other common trigger. Sender authentication records, unsubscribe handling, consent records, retention settings and access logs need to exist and be documented before the first campaign goes out, not after an assessor asks for them. DeployOpen prepares systems, controls and evidence for compliance assessments but does not issue audit reports or certifications, so the independent auditor or certification body remains the party that judges the result. Confirm with your assessor which evidence they expect, and make that list part of the written scope so the partner builds it in from the start.
Building in-house stays cheaper when the team already runs PostgreSQL and mail infrastructure. An operations group that patches databases, manages SMTP relays or an Amazon SES account, and already monitors bounces and complaints can absorb listmonk with little new skill. The recurring cost then reduces to staff time for upgrades, monitoring and list hygiene, which the team already budgets for. Before deciding, compare the internal hours required for each upgrade cycle with the partner retainer quote, and confirm whether your team can sustain that workload alongside its existing duties for the life of the platform.
How to build your own cost estimate step by step
This sequence turns vague SaaS-versus-self-hosted debate into a line-by-line comparison that a finance lead and an engineering lead can both check. It ends with three columns of cost over a period you choose, each built from written quotes and your own staff hours.
Count subscribers and monthly send volume
Start by recording how many active subscribers you have, how many lists they sit on, and how many emails you expect to send each month, including campaigns, automated messages and any transactional mail that will run through the same platform. Split the volume by peak month if your sending is seasonal. Marketing owns this input, and the engineering lead should check that the numbers match what the platform will actually receive. You know this step is done when a single table shows subscribers, sends per month and peak sends, with a named owner for each figure.
Shortlist platforms and confirm their licences
Choose the two or three candidates you will price, such as listmonk, Mautic or Dittofeed, based on the functions your team needs. For each one, read the licence and confirm whether the use you have in mind creates any obligation, such as publishing modifications. Note the current release and its support window from the project's own pages, and confirm these with the project before you rely on them. You know this step is done when each candidate has a licence note and a support status recorded.
Price the sending service from published rates
Sending is usually the largest recurring cost, so price it separately. Take your monthly volume from the first step and apply the current published rates of the email delivery service you plan to use, including any dedicated IP or plan minimums. Ask whether the rate changes at higher volumes and whether free allowances apply. Record the rate sheet date and the vendor's name next to the figure, because prices change. You know this step is done when the sending line shows a monthly figure calculated from a dated rate sheet.
Price hosting, backups and monitoring
Estimate the infrastructure you will run yourself: application servers, the PostgreSQL or MySQL database, storage for backups and logs, monitoring and any staging copy. Use your own cloud provider's current rates or your data center charge-back model. Note that Mautic depends on cron jobs and a messenger consumer, so plan for background workers as well as web nodes. You know this step is done when each infrastructure component has a monthly figure, a cloud or data center source, and a note on whether it is one-time or recurring.
List integrations and migration work
Write down every system the newsletter platform must connect to, such as the CRM, the consent store, the identity provider, the website and the analytics stack, and any existing list you must migrate. Ask each candidate partner for a written scope for these items, separating one-time build and migration work from recurring connector maintenance. Mark which integrations are supported natively and which need custom code. You know this step is done when every integration appears once, with a one-time or recurring label and a quote line attached.
Decide the support and upgrade model
Choose how you will keep the platform patched and running: fully in house, a partner retainer for upgrades and monitoring, or a vendor's managed service. Consider how many staff are on call and what response you need when a sending problem stops a campaign. Upgrades matter because each project publishes its own support windows. You know this step is done when you have written the chosen model, the people or firm responsible for each activity, and the recurring fee or staff time that goes with it.
Add internal staff hours by role
Estimate the hours your own people will spend, by role: marketing for templates and segments, engineering for deployment and upgrades, security for access and privacy reviews, and compliance for consent records. Multiply each role's hours by its loaded internal rate. Count hours for the initial build separately from monthly operations. Hours are often the most under-counted line, so get each manager to confirm their estimate. You know this step is done when the hours table lists roles, one-time and monthly hours, and the rate source used.
Compare three columns over a stated period
Build one table with three columns: buying a SaaS subscription, building and running the platform yourself, and bringing in an implementation partner for the build with your own team running it afterward. Pick a period, such as three years, and state it at the top of the table so every column covers the same span. Add one-time costs in the first year and recurring costs across the period. Request written quotes that separate one-time and recurring items, and confirm each vendor's current pricing directly before you decide. You know this step is done when the three columns use the same period, every figure traces to a source, and the open questions for each quote are listed.
Questions buyers ask before choosing build, partner or SaaS
Is self-hosting listmonk or Mautic free?
The software license is free, but self-hosting is not zero cost. listmonk is licensed under the AGPL v3 license, and Mautic's GitHub repository is licensed under GPL-3.0, with Mautic stating that it has no paid edition of the software itself. The costs that remain are the server or cloud infrastructure, PostgreSQL or MySQL-compatible database hosting, backups, monitoring, and the email sending service that delivers the messages. Mautic also needs cron jobs and a messenger consumer running, and listmonk relies on SMTP servers or a sending service you pay for. Ongoing security patching, upgrades and staff time to operate the platform recur every year. Ask any partner to list each of these lines separately in the quote so you can compare them with a SaaS subscription on the same basis.
How long does it take to build a self-hosted newsletter platform?
The duration depends on the scope, so no general timeline applies. The main variables are the number of sending domains, how many lists and consent flows you need, whether you migrate existing subscribers and suppression records from another tool, the identity integration for staff senders, the number of integrations with CRM or data sources, and whether you need separate environments for testing. Deliverability setup, including SPF, DKIM and DMARC records and the sending service configuration, often takes longer than teams expect because it depends on DNS changes and warm-up periods outside your control. Treat any timeline as provisional until it appears in a written plan that lists phases, deliverables, owners and acceptance criteria. Most DeployOpen engagements are fixed-scope, so the agreed plan defines what is built before work starts.
What does a self-hosted newsletter project need from our own team?
Your team owns decisions and access, even when a partner does the build. Expect to name an executive owner who approves scope and consent rules, a marketing lead who defines lists, templates and segments, and an engineer or platform owner who controls the servers, DNS and secrets. Legal or compliance should review consent wording, unsubscribe handling and retention periods before the first send. Someone must also own the sending domain, because mailbox providers evaluate that domain's authentication and complaint rates. Ask the partner to list these roles, the hours each role is likely to need during build, and who signs off each phase. Clear role assignment at the start reduces the most common source of delay, which is waiting for approvals and access.
Can a small team run a self-hosted newsletter platform alone?
A small team can run listmonk or Mautic alone if it has someone comfortable with Linux servers, databases, DNS and email authentication, and if it has a clear patching routine. Mautic is the heavier option because it runs on PHP with a web server and depends on cron jobs for segment updates, campaign updates and triggers, and the Mautic project states it should not run on shared hosting. listmonk has a simpler footprint, with PostgreSQL as its only dependency. Key tasks that small teams often underestimate include monitoring bounces and complaints, rotating API tokens, testing backups and restoring them, and keeping the platform on a supported release. If no one on the team can cover those tasks during an absence, plan for a support retainer or an external operator from the start.
How do we compare a SaaS subscription with self-hosting fairly?
Compare total annual cost over the same period, scale and feature set, not the subscription price alone. For the SaaS option, collect the published pricing tier that matches your subscriber count and send volume, then list add-ons for dedicated IP addresses, SSO, audit logs, data retention and additional users. For self-hosting, add infrastructure, the sending service, implementation, support, upgrades, backups and internal staff time. Subscriber volume and send frequency drive the SaaS line most, while data location, identity requirements and audit needs can add cost to SaaS when a tier that meets them is required. Self-hosting shifts cost toward people and operations, so the comparison should include the hours your team would spend each month. Document the assumptions so finance and security can review them together.
What should we ask an implementation partner to include in a quote?
Ask for a written scope that names each deliverable, the platform and version, the hosting environment, and the acceptance test for each phase. The quote should separate one-time work, such as installation, configuration, sending domain setup, migration, integrations and documentation, from recurring work, such as upgrades, monitoring, backups, security testing and support. Ask which third-party costs are excluded, including the sending service, cloud resources, domains and licenses for any add-on tools. Confirm what the partner needs from your team, the assumptions behind the schedule, how change requests are priced, and what happens after go-live. Ask how security evidence and compliance records will be delivered, and whether the partner prepares evidence for your auditors without issuing any attestation. DeployOpen provides quotes based on written scope and does not publish a price list.
Does self-hosting remove our sending service costs and risks?
No. Self-hosting moves the platform, not the mail delivery. listmonk and Mautic still send through SMTP servers or an external provider such as Amazon SES, and that provider carries its own pricing, rate limits and contract terms. Dittofeed explicitly integrates with email service providers such as SendGrid and Amazon SES rather than sending email itself, which shows the same pattern across tools. Sending service charges usually scale with volume, so they should appear as a recurring line in any build versus SaaS comparison. Ask your team to confirm the sending provider's current pricing and terms directly with the provider, and check whether the provider is covered by your processor agreements and third-party risk process.
What to confirm with vendors and your own environment
Before you compare totals, confirm the inputs that move them most. Sending service rates are the first item: whatever relay you choose, whether an email service provider, a cloud sending service or your own mail transfer agent, get its current published rate for your expected monthly volume in writing, including any charges for dedicated IPs, extra regions or support tiers. Ask the SaaS vendor for its price at your subscriber count and send volume, not the entry tier shown on its pricing page, and ask how the vendor defines a billable contact or a sent message, since those definitions decide the bill. Confirm whether any vendor price changes after a trial or a renewal.
Next, confirm the software versions your team will actually deploy. For Mautic, check the support table on the project's release page on the day you plan to install, because a release that is in security support today may leave support before your go-live date, and the project recommends a long-term support line for stable operations. Check the PHP and database versions that release requires, the web server it supports, and the cron and messenger workers it needs. For listmonk, confirm the PostgreSQL version and the current release tag. For Dittofeed, note that its recent releases are pre-release tags, so decide in writing whether your organization will run a pre-release in production.
Finally, get DeployOpen's commercial terms in writing. DeployOpen does not publish a price list, and a quote follows a written, fixed scope that names the deliverables, the environments, the integrations, the handover and the support period. Ask any partner, including DeployOpen, to separate one-time implementation work from recurring hosting, sending and support charges, and to state what your own staff must provide, such as DNS changes, sender domain approvals and access to your identity provider. Compare quotes against the same scope and the same volume, or the comparison will not tell you which option costs less.
How DeployOpen scopes and delivers a fixed-scope newsletter platform
DeployOpen plans, implements, integrates, hardens and documents self-hosted newsletter platforms inside the client's own cloud accounts, data centers or air-gapped networks. For build, partner or SaaS decisions, we start by agreeing in writing which sending service, platform and cost lines are in scope, so the quote reflects the actual work.
How we scope
- Written scope lists the platform (listmonk, Mautic or Dittofeed), hosting location and sending service to be configured.
- We map each cost line to a named owner so internal staff time, infrastructure and support are visible before work starts.
- Scope states which deliverables are fixed, which recur, and what a retainer for ongoing support would cover after go-live.
How we build
- We deploy the chosen platform into your infrastructure and connect it to your PostgreSQL or database tier and sending service.
- We configure consent capture, list settings, SMTP queues, rate limits and bounce handling as agreed in the scope document.
- We run security testing and check that sending, unsubscribe and data retention settings match the written requirements.
How we hand over
- You receive architecture notes, configuration records, runbooks and the cost assumptions used in the quote.
- Admin training covers list management, campaign sends, template editing, API tokens and roles for your staff.
- We document upgrade and backup procedures so your team knows what recurs and who is responsible for each task.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers, priced separately from the fixed-scope build.
- Retainers can cover platform version upgrades, such as tracking releases for listmonk, Mautic or Dittofeed, with written terms.
- Before any retainer starts, we confirm the support boundaries, response expectations and which party handles sending service issues.

