The Complete Open Source Marketing Stack in 2026
The Marketing SaaS Problem
A typical company's marketing stack:
- Email marketing: Mailchimp $20-350/month (scales with list size)
- Marketing automation: HubSpot Marketing Starter $15+/user/month
- Analytics: Google Analytics (free but Google gets your data), or Mixpanel $20-833/month
- Forms and surveys: Typeform $25-99/month
- Link tracking/UTMs: Managed via Google or Bitly $35/month
- CRM integration: Additional costs
For a company with a 50K email list, using HubSpot Starter and Mixpanel Growth: $500-800/month.
Open source alternatives eliminate the subscription costs while giving you complete data ownership. Your customer data never goes to Mailchimp's servers, Google's servers, or anyone else's.
The Open Source Marketing Stack
| Function | Tool | Alternative to |
|---|---|---|
| Email newsletters | Listmonk | Mailchimp, Brevo |
| Marketing automation | Mautic | HubSpot, Marketo |
| Web analytics | Plausible or Matomo | Google Analytics |
| Forms and surveys | Formbricks | Typeform, SurveyMonkey |
| Chatbot/conversational | Typebot | Intercom |
| Social media scheduling | Postiz | Buffer, Hootsuite |
| Link shortener | YOURLS | Bitly |
| A/B testing | GrowthBook | Optimizely, VWO |
Component Deep Dives
Email Newsletters: Listmonk
Listmonk (15K+ GitHub stars, Apache 2.0) is the highest-performance open source newsletter platform. It's a single binary application — no runtime dependencies — that handles millions of subscribers efficiently.
What Listmonk includes:
- Subscriber list management with segments and tags
- HTML and plain-text email campaigns
- Transactional emails (triggered by API)
- Campaign analytics: open rates, click rates, bounces
- Bounces and unsubscribe management
- REST API for programmatic control
- Import/export subscribers (CSV)
- Multiple SMTP providers (send via Amazon SES, Mailgun, Postmark)
What makes Listmonk different from Mailchimp: Listmonk manages the subscriber database and campaign logic. You configure an SMTP service for actual email delivery. Amazon SES at $0.10/1,000 emails makes bulk sending very cheap — 100,000 emails/month costs $10 in SES fees vs $550+/month on Mailchimp.
Self-hosting Listmonk:
services:
listmonk:
image: listmonk/listmonk:latest
ports:
- "127.0.0.1:9000:9000"
environment:
LISTMONK_db__host: db
LISTMONK_db__port: "5432"
LISTMONK_db__user: listmonk
LISTMONK_db__password: ${DB_PASS}
LISTMONK_db__database: listmonk
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: listmonk
POSTGRES_USER: listmonk
POSTGRES_PASSWORD: ${DB_PASS}
volumes:
- pg_data:/var/lib/postgresql/data
restart: unless-stopped
Configure email delivery in Listmonk settings:
- Add Amazon SES, Mailgun, or Postmark as SMTP provider
- Set sender name and email address
- Configure bounce handling webhook
Sending cost with Amazon SES:
- 50K emails/month: $5
- 500K emails/month: $50
- 5M emails/month: $500
Compare: Mailchimp for 50K subscribers is $350/month. Listmonk + SES is $5-10/month.
Marketing Automation: Mautic
Mautic (8K+ GitHub stars, GPL-3.0) is a full marketing automation platform — the open source equivalent of HubSpot Marketing or Marketo. It handles lead capture, nurture sequences, behavioral tracking, and multi-channel communication.
What Mautic includes:
- Lead scoring and segmentation
- Email sequences (drip campaigns) with behavioral triggers
- Landing page builder
- Form builder (capture leads on your website)
- Contact timeline (full activity history per contact)
- A/B testing for email subject lines and content
- SMS and push notification channels
- CRM integration (Salesforce, Sugar CRM)
- Multi-language campaigns
When to use Mautic vs Listmonk:
- Listmonk: You want a fast, simple newsletter platform. Mass emails to subscribers who signed up.
- Mautic: You need behavioral automation. "When a contact views the pricing page 3 times, add to 'high intent' segment and send a targeted email."
For most companies, running both makes sense: Listmonk for regular newsletters, Mautic for lead nurturing automation.
Self-hosting Mautic:
services:
mautic:
image: mautic/mautic:latest
ports:
- "127.0.0.1:8080:80"
environment:
MAUTIC_DB_HOST: db
MAUTIC_DB_NAME: mautic
MAUTIC_DB_USER: mautic
MAUTIC_DB_PASSWORD: ${DB_PASS}
MAUTIC_ADMIN_EMAIL: admin@yourdomain.com
MAUTIC_ADMIN_PASSWORD: ${ADMIN_PASS}
MAUTIC_SITE_URL: https://mautic.yourdomain.com
depends_on:
- db
volumes:
- mautic_data:/var/www/html/app/config
- mautic_logs:/var/www/html/app/logs
restart: unless-stopped
db:
image: mysql:8
environment:
MYSQL_DATABASE: mautic
MYSQL_USER: mautic
MYSQL_PASSWORD: ${DB_PASS}
MYSQL_ROOT_PASSWORD: ${DB_PASS}
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
Mautic campaign example:
Lead Nurture Sequence:
Day 0: Contact fills out ebook download form
→ Tagged: "downloaded-ebook-seo"
→ Added to segment: "New Leads - SEO Interest"
Day 1: Email 1 - "Your ebook is ready + quick win tip"
Day 4: Email 2 - "How [Company] doubled traffic in 90 days"
→ Track: Did they click the case study link?
→ Yes: Add tag "high-engagement", move to "Sales Ready" segment
→ No: Continue nurture
Day 10: Email 3 - "Quick question..."
→ If no response in 3 days: Move to "cold" segment, reduce email frequency
Web Analytics: Plausible
Plausible (21K+ GitHub stars, AGPL-3.0) is the simplest privacy-respecting Google Analytics alternative. No cookies, no GDPR consent banners needed (for most jurisdictions), complete data ownership.
What Plausible includes:
- Page views, unique visitors, bounce rate
- Traffic sources (referrers, UTM parameters)
- Top pages and custom events
- Country, device, and browser breakdowns
- Weekly/monthly email reports
- Shareable public dashboard links
- API for custom data queries
- Lightweight script (< 1KB, faster than GA)
Self-hosting Plausible:
services:
plausible:
image: ghcr.io/plausible/community-edition:latest
ports:
- "127.0.0.1:8000:8000"
environment:
BASE_URL: https://analytics.yourdomain.com
SECRET_KEY_BASE: ${SECRET_KEY}
DATABASE_URL: postgres://plausible:${DB_PASS}@db:5432/plausible
CLICKHOUSE_DATABASE_URL: http://clickhouse:8123/plausible
depends_on:
- db
- clickhouse
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: plausible
POSTGRES_USER: plausible
POSTGRES_PASSWORD: ${DB_PASS}
volumes:
- pg_data:/var/lib/postgresql/data
restart: unless-stopped
clickhouse:
image: clickhouse/clickhouse-server:23.3-alpine
volumes:
- clickhouse_data:/var/lib/clickhouse
- ./clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
restart: unless-stopped
Add the tracking script to your website:
<script defer data-domain="yourdomain.com" src="https://analytics.yourdomain.com/js/script.js"></script>
Plausible vs Matomo:
- Plausible: Simpler setup, minimal interface, focuses on key metrics. Better for smaller teams.
- Matomo: More comprehensive (session replays, heatmaps, A/B testing, goal funnels). Better for data-heavy marketing teams.
Forms and Surveys: Formbricks
Formbricks (12K+ GitHub stars, AGPL-3.0) handles all form types: website forms, in-app surveys, link surveys, and conversational forms. Connects to Listmonk and Mautic via webhooks.
Self-hosting Formbricks:
services:
formbricks:
image: ghcr.io/formbricks/formbricks:latest
ports:
- "127.0.0.1:3000:3000"
environment:
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
NEXTAUTH_URL: https://forms.yourdomain.com
DATABASE_URL: postgresql://formbricks:${DB_PASS}@db/formbricks
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: "587"
SMTP_USER: ${SMTP_USER}
SMTP_PASSWORD: ${SMTP_PASS}
MAIL_FROM: noreply@yourdomain.com
depends_on:
- db
restart: unless-stopped
Connect Formbricks to Listmonk:
- Create a webhook in Formbricks: trigger on form submission
- Webhook URL: your n8n or custom endpoint
- n8n workflow: receive webhook → add subscriber to Listmonk list
A/B Testing: GrowthBook
GrowthBook (6K+ GitHub stars, MIT) is a feature flagging and A/B testing platform. Run experiments on your website, measure statistical significance, and make data-driven decisions.
What GrowthBook provides:
- A/B test management with statistical analysis
- Feature flags for gradual rollouts
- No-code visual editor for simple tests
- SDK for JavaScript, Python, Ruby, Go, and more
- Metrics integration with your analytics
Self-hosting GrowthBook:
services:
growthbook:
image: growthbook/growthbook:latest
ports:
- "127.0.0.1:3000:3000"
- "127.0.0.1:3100:3100"
environment:
MONGODB_URI: mongodb://mongo:27017/growthbook
NODE_ENV: production
APP_ORIGIN: https://experiments.yourdomain.com
depends_on:
- mongo
restart: unless-stopped
mongo:
image: mongo:6
volumes:
- mongo_data:/data/db
restart: unless-stopped
Social Media Scheduling: Postiz
Postiz (19K+ GitHub stars, AGPL-3.0) is a social media scheduling and management tool — the open source Buffer or Hootsuite alternative.
Postiz capabilities:
- Schedule posts across Twitter/X, LinkedIn, Instagram, Facebook, TikTok
- Content calendar view
- Analytics per platform
- Team collaboration with approval workflows
- AI content assistance
Self-hosting Postiz:
services:
postiz-app:
image: ghcr.io/gitroomhq/postiz-app:latest
ports:
- "127.0.0.1:5000:5000"
- "127.0.0.1:3000:3000"
environment:
MAIN_URL: https://social.yourdomain.com
FRONTEND_URL: https://social.yourdomain.com
DATABASE_URL: postgresql://postiz:${DB_PASS}@db/postiz
REDIS_URL: redis://redis:6379
depends_on:
- db
- redis
restart: unless-stopped
Link Tracking: YOURLS
YOURLS (Your Own URL Shortener) handles branded link shortening and UTM tracking. Essential for campaign attribution.
services:
yourls:
image: yourls:latest
ports:
- "127.0.0.1:8080:80"
environment:
YOURLS_SITE: https://go.yourdomain.com
YOURLS_USER: admin
YOURLS_PASS: ${ADMIN_PASS}
YOURLS_DB_HOST: db
YOURLS_DB_NAME: yourls
YOURLS_DB_USER: yourls
YOURLS_DB_PASS: ${DB_PASS}
depends_on:
- db
restart: unless-stopped
Recommended Server Setup
Hetzner CPX31 (8GB, 4 cores, $10/month) handles:
- Listmonk (newsletters)
- Plausible (analytics)
- Formbricks (forms)
- GrowthBook (A/B testing)
- YOURLS (link tracking)
- PostgreSQL + Redis
Hetzner CPX41 (16GB, 6 cores, $19/month) if also running:
- Mautic (marketing automation — memory intensive)
- Postiz (social scheduling)
- ClickHouse (for Plausible)
Connecting the Stack
The real power comes from connecting these tools. Use n8n as the glue:
Lead Capture → Email Sequence:
- Visitor fills Formbricks form on landing page
- Formbricks fires webhook → n8n receives it
- n8n → adds subscriber to Listmonk list + Mautic contact
- Mautic starts automated nurture sequence
- n8n → tags new lead in your CRM (Twenty)
Website Behavior → Personalization:
- Plausible tracks page views (privacy-compliant)
- High-value page views trigger Mautic behavioral rules
- Mautic sends targeted follow-up email based on interest
Campaign Attribution:
- YOURLS creates tracked links for campaigns:
go.yourdomain.com/summer-offer - Link includes UTM parameters:
?utm_source=newsletter&utm_campaign=summer - Plausible captures UTM data, shows which campaigns drive conversions
- GrowthBook runs A/B test on landing page headline
- Plausible feeds conversion data back to GrowthBook for analysis
Cost Comparison
Commercial Marketing Stack (50K Email List)
| Tool | Monthly |
|---|---|
| Mailchimp (50K subs) | $350 |
| HubSpot Starter (2 users) | $30 |
| Google Analytics (free, your data) | $0 |
| Typeform Business | $59 |
| Buffer Pro | $15 |
| Bitly Premium | $35 |
| Total | $489/month, $5,868/year |
Open Source Stack
| Component | Monthly |
|---|---|
| Hetzner CPX41 | $19 |
| Amazon SES (50K emails) | $5 |
| Domain | $2 |
| Total | $26/month, $312/year |
Annual savings: $5,556. And unlike Mailchimp or HubSpot, your subscriber data stays on your server.
Getting Started: Phased Approach
Don't try to migrate everything at once.
Phase 1 (Month 1): Set up Listmonk + Plausible
- Export subscribers from Mailchimp, import to Listmonk
- Install Plausible tracking script, remove Google Analytics
- Verify open rates and click tracking work
Phase 2 (Month 2): Add forms and link tracking
- Deploy Formbricks, replace embedded Typeforms
- Set up YOURLS for campaign links
Phase 3 (Month 3): Marketing automation
- Deploy Mautic
- Migrate simple email sequences from HubSpot
- Connect Formbricks → Mautic via n8n
Phase 4 (Month 4): A/B testing and optimization
- Deploy GrowthBook
- Set up first A/B test on high-traffic landing page
By month 4, you're running a complete marketing stack for under $30/month.
Find More Marketing Tools
Browse all marketing and analytics alternatives on OSSAlt — compare Listmonk, Mautic, Plausible, Matomo, GrowthBook, and every other open source marketing tool with deployment guides and feature comparisons.