BOT2BOT LABS
Quick receipt$0.64/mo vs $49.00/mo (beehiiv Lite, up to 1,000 subscribers)
MailCheap, the AI-built beehiiv alternative: what it costs to self-host
MailCheap is an AI-built alternative to beehiiv. Quick receipt: MailCheap (open-source beehiiv-style newsletter app by @marclou) vs beehiiv. We cloned the public repo, ran the full test suite and a local self-host path on free local MongoDB, checked list prices for SES/Upstash/Atlas/beehiiv/MailCheap Cloud, and compared newsletter-core features. On 2026-10-20 we sent one live transactional email (MailCheap's sign-in code) through the Amazon SES sandbox; campaign send and QStash fan-out were not run.
On price date 2026-10-20, running the clone yourself is about $0.64 per month (estimate (cited list prices; live SES campaign bill and Atlas/Upstash usage not observed — see setup.blocked)) versus $49.00/mo (beehiiv Lite, up to 1,000 subscribers) for beehiiv. At 1,000 subscribers and 4 sends/mo, self-host ~$0.64/mo vs beehiiv Lite $49/mo yearly (~$48/mo less before your time). Break-even on ops time depends on your hours (not measured); on infra alone it is cheaper from the first month.
Verdict: good for Operators who want newsletter send + archive + API/MCP and will run SES + Mongo themselves, especially around the 2026-11-01 beehiiv renewal change. Skip if You need beehiiv's ad network, podcasts, community, paid-subscription monetization, SOC 2 on the app vendor, or zero ops time. Main risk: You own deliverability and AGPL obligations; campaign/QStash path not verified in this quick run and our SES test email landed in Spam without domain DKIM; SES Essentials is $0.16/1k for many new accounts vs builder's $0.10 claim..
Quick receipt
r-0004 · Published 2026-10-23 · Price date 2026-10-20
Quick receipt: MailCheap (open-source beehiiv-style newsletter app by @marclou) vs beehiiv. We cloned the public repo, ran the full test suite and a local self-host path on free local MongoDB, checked list prices for SES/Upstash/Atlas/beehiiv/MailCheap Cloud, and compared newsletter-core features. On 2026-10-20 we sent one live transactional email (MailCheap's sign-in code) through the Amazon SES sandbox; campaign send and QStash fan-out were not run.
Break-even
Cheaper on infra from day one at 1,000 subscribers
~$0.64/mo self-host (SES Essentials @ 4k emails) vs $49/mo beehiiv Lite yearly. Excludes your setup and maintenance hours.
Verdict
Good for: Operators who want newsletter send + archive + API/MCP and will run SES + Mongo themselves, especially around the 2026-11-01 beehiiv renewal change.
Skip if: You need beehiiv's ad network, podcasts, community, paid-subscription monetization, SOC 2 on the app vendor, or zero ops time.
Main risk: You own deliverability and AGPL obligations; campaign/QStash path not verified in this quick run and our SES test email landed in Spam without domain DKIM; SES Essentials is $0.16/1k for many new accounts vs builder's $0.10 claim.
Confidence — 52.6% measured by us
measured 10/19 · builder-stated 6 · unverified 3 — Counts from claims[] types on this quick receipt (prices and measurements 2026-10-20; published 2026-10-23).
No upfront license fee; break-even month 0 on listed infra vs Lite.
Labor-adjusted operator TCO @1 user (year 1): $7.68 — Same as tco_year_1 until hours measured.
Self-host run cost (free tiers + SES list price) vs beehiiv Lite at 1,000 subscribers
Estimate at 1,000 active subscribers × 4 issues/mo = 4,000 emails. Amazon SES Essentials (default for new accounts as of 2026-07-21): $0.16/1,000 → $0.64/mo (aws.amazon.com/ses/pricing, checked 2026-10-20). Builder cites $0.10/1,000 (à-la-carte); that would be $0.40/mo if the account can use à-la-carte. Hosting Vercel Hobby $0, MongoDB Atlas Free (M0) $0, Upstash Redis Free $0, Upstash QStash Free $0 (80 QStash messages/mo at 50 emails/message per MailCheap README). Excludes domain DNS, production SES access request, and human time. A live transactional send through Amazon SES (MailCheap's sign-in email, us-west-2 sandbox) was verified on 2026-10-20; campaign sends were not run and no live campaign bill was measured.
beehiiv Lite, Up to 1,000 subscribers, billed yearly ($49/mo; $59/mo monthly). https://www.beehiiv.com/pricing checked 2026-10-20. Existing customers move to this new pricing on first renewal on/after 2026-11-01 (https://www.beehiiv.com/blog/beehiiv-pricing-2026).
estimate (cited list prices; live SES campaign bill and Atlas/Upstash usage not observed — see setup.blocked)
Two-sided receipt
A · Operator receipt
Builder or operator running the software
- Build — tokens est. vs billed
- Not disclosed / Not disclosed(Unverified)
- Build — human hours
- Not disclosed(Not disclosed)
- Run @ 1 user / mo
- $0.64/mohost $0.00 + DB $0.00 + email $0.64 + APIs $0.00 + tokens $0.00(Estimate)
- Run @ 10 users / mo
- $6.40/mohost $0.00 + DB $0.00 + email $6.40 + APIs $0.00 + tokens $0.00(Estimate)
- Run @ 100 users / mo
- $72.00/mohost $0.00 + DB $0.00 + email $64.00 + APIs $8.00 + tokens $0.00(Estimate)
- Maintenance h / mo (@ 1 / 10 / 100)
- Not measured · Not measured · Not measured(Not measured (quick))
- TCO year 1 (@ 1 / 10 / 100 users)
- $7.68 · $76.80 · $864.00(Estimate)
- Labor-adjusted TCO year 1 (@ 1 / 10 / 100)
- $7.68 · $76.80 · $864.00(Not measured on this quick receipt)
- Builder: few prompts with Opus 5.5; no hours or token $ published.
- 1 publisher, 1k subs, 4 issues/mo → 4k emails. SES Essentials $0.16/1k = $0.64. Atlas Free $0, Upstash Redis Free $0, QStash Free $0 (80 msgs), Vercel Hobby $0. À-la-carte SES would be $0.40.
- Same 4k emails/mo per publisher × 10 = 40k emails → SES Essentials $6.40. Free tiers may still cover QStash/Redis/Atlas at this volume; unverified under load.
- 100 × 4k = 400k emails → SES Essentials $64. QStash ~8k messages/mo ≈ $0.08 on PAYG if over free (or $0 if still under 1k/day). Placeholder $8 apis for Redis/QStash headroom — not a measured bill.
- 12 × $0.64 SES Essentials at 4k emails/mo; excludes domain and time.
- 12 × $6.40
- 12 × $72 placeholder
B · User receipt
Someone using the product vs the commercial alternative
- Clone price
- MailCheap Cloud Starter (hosted) or self-host $0 + SES — $19.00/mo(builder-stated (mailcheap.ai/pricing, read 2026-10-20))
- Real product @ 1 / 10 / 100 tiers / mo
- $49.00 · $49.00 · $119.00(measured)
- Price date
- 2026-10-20
- Switching effort
- MailCheap imports beehiiv/Substack/Mailchimp CSVs; README claims ~1 hour self-host setup mostly waiting on DNS/SES production. We did not complete DNS/SES in this run.(partially verified)
- Risk — reliability
- Transactional SES send verified (sign-in email; landed in Gmail Spam without domain DKIM). Campaign fan-out not verified. Production deliverability is on you + SES.
- Risk — security
- OSS has no SOC 2; beehiiv publishes SOC 2 Type 2. You run your own Mongo/SES.
- Risk — support
- Self-host: issues closed / no support per README. Cloud has chat.
- Risk — data export
- Contacts export via signed links (SECURITY.md); CSV import from beehiiv documented.
- Risk — legal
- AGPL-3.0 — network use may require offering source of your modified version.
- Self-host is free software + provider fees. Cloud Starter $19/mo for 20k emails (mailcheap.ai/pricing 2026-10-20).
- beehiiv Lite yearly @ ≤10,000 subscribers = $119/mo (pricing page 2026-10-20)
- List price source: https://www.beehiiv.com/pricing
Scan results
Scan date 2026-10-20
- Reliability
Core flow: 1032/1032 tests passed
not run (quick receipt; no load or live campaign-send test)
Setup from README: Pass
- Security audit
- 0 critical · 9 high
npm audit on our local clone at commit bb82ec6 (all 9 high are in devDependencies; production deps 0); gitleaks on our clone only; beehiiv via https://security.beehiiv.com/ only
- Feature parity
- 17 of 26 checklist features(source)
- Vendor certifications
Maintenance pulse
Measured 2026-10-20
- Last commit
- 2026-10-20T14:23:35Z
- Open issues
- 13
- Contributors
- 1
- License
- AGPL-3.0
- Stars
- 1265
Data & lock-in
Self-host: your MongoDB + SES. Cloud: MailCheap's infra (not inspected).
Export: yes — Contacts CSV export (signed links); beehiiv CSV import documented in README.
Feature parity detail
Checklist row-by-row (MailCheap vs beehiiv tier).
| Feature | MailCheap | beehiiv | Matched |
|---|---|---|---|
| Campaign editor (write/send) | Yes | Free | Yes |
| Schedule sends | Yes | Free | Yes |
| Unlimited email sends (SaaS plans) | Yes | Free | Yes |
| Welcome email | Yes | Free | Yes |
| Subscribe forms / signup API | Yes | Free | Yes |
| One-click unsubscribe (RFC 8058) | Yes | Free | Yes |
| Confirmed / double opt-in | Yes | Free | Yes |
| Custom sending domain (DKIM/SPF/DMARC) | Yes | Lite | Yes |
| Public archive / newsletter website | Yes | Free | Yes |
| Open & click tracking / campaign stats | Yes | Free | Yes |
| CSV import (beehiiv/Substack/Mailchimp) | Yes | Free | Yes |
| REST API | Yes | Free | Yes |
| MCP for AI agents | Yes | Free (read) / Lite (write) | Yes |
| List cleanup / dormant handling | Yes | Lite (automations) | Yes |
| Bounce & complaint suppression | Yes | Free | Yes |
| A/B testing | No | Lite | No |
| Visual automation builder | No | Lite | No |
| Segments (basic) | Yes | Free | Yes |
| Paid subscriptions / 0% take rate | No | Lite | No |
| Ad network | No | Lite | No |
| Podcast hosting | No | Free | No |
| Community | No | Free/Lite | No |
| Digital products / storefront | No | Free/Lite | No |
| Remove platform branding | Yes | Pro | Yes |
| SSO / SAML | No | Enterprise | No |
| Dedicated IPs (managed) | No | Enterprise | No |
Price history
Receipts are re-priced at least every 90 days; append rows, do not overwrite.
| Checked | Product | Price | Source |
|---|---|---|---|
| 2026-10-20 | beehiiv Lite, up to 1,000 subscribers (yearly billing) | $49 USD/mo | link |
| 2026-10-20 | beehiiv Lite, up to 1,000 subscribers (monthly billing) | $59 USD/mo | link |
| 2026-10-20 | beehiiv Lite, up to 10,000 subscribers (yearly billing) | $119 USD/mo | link |
| 2026-10-20 | Amazon SES Essentials outbound (0–10M emails/mo) | $0.16 USD per 1,000 emails | link |
| 2026-10-20 | Amazon SES à la carte outbound | $0.1 USD per 1,000 emails | link |
| 2026-10-20 | MailCheap Cloud Starter (20,000 emails/mo) | $19 USD/mo | link |
Builder did not publish human hours. He said it took a few prompts with Opus 5.5.
Builder-stated vs measured
| Type | Claim | Value | Source |
|---|---|---|---|
| Builder-stated | Builder: 83% cheaper than beehiiv | "I vibe-coded beehiiv, and it's 83% cheaper." Hosted from $19/month; open source free. | Link · 2026-10-15 |
| Builder-stated | Builder: $0.10 per 1,000 emails (SES) | $0.10 per 1,000 emails on Amazon SES | Link · 2026-10-10 |
| Builder-stated | Builder: less than $300/year run cost | "I will pay less than $300/year" on AWS SES + MongoDB (his stack) | Link · 2026-10-09 |
| Builder-stated | Builder: prior beehiiv bills | First yearly bill $1,000; future bill would have been $4,000 (his statement) | Link · 2026-10-09 |
| Builder-stated | Builder: build method | "a few prompts with Opus 5.5"; no human hours or token invoice published | Link · 2026-10-09 |
| Builder-stated | MailCheap Cloud Starter price | $19/month for 20,000 emails / up to 10,000 active subscribers ($0.95 per 1,000 emails) | Link · 2026-10-20 |
| Unverified | Human hours to build | Not disclosed | Link · 2026-10-09 |
| Unverified | Token $ to build | Not disclosed (no usage export) | Link · 2026-10-20 |
| Measured by Bot2Bot | Local clone install (npm ci) | 8.11 s wall-clock; 846 packages; Node 22.20.0 | Link · 2026-10-20 |
| Measured by Bot2Bot | Unit + integration tests | 1032/1032 pass (Node 22.20.0, throwaway local mongod per tests) | Link · 2026-10-20 |
| Measured by Bot2Bot | Production build | next build succeeded in 17.5 s | Link · 2026-10-20 |
| Measured by Bot2Bot | Local health + sign-in | /api/health 200; email OTP sign-in as allowlisted admin works; dashboard shows Sending off until SES/QStash configured | Link · 2026-10-20 |
| Unverified | Live SES campaign send / subscribe / unsubscribe (us-west-2 sandbox) | Not run. Campaign sends need SES_SNS_TOPIC_ARN (bot2bot-ops has no SNS permissions), an SES tenant + DKIM-verified sending domain (DNS change), and a public APP_URL for QStash fan-out (QStash calls APP_URL/api/jobs/*); this run had none of them. Live subscribe/unsubscribe also not exercised. | Link · 2026-10-20 |
| Measured by Bot2Bot | Live transactional send via Amazon SES (MailCheap sign-in email, production build) | 2026-10-20 10:49:09 PT: MailCheap SendEmail to SES us-west-2 returned 200 in 112 ms, MessageId 010101a15a6e7162-7cfa7283-042e-459c-bd79-5592186498d8-000000; SES SentLast24Hours 0→1, 1 delivery attempt, 0 bounces/complaints/rejects. Gmail received it ~1 s after the click (Gmail message id time 10:49:10 PT) but filed it in Spam (sandbox, From on a domain with no SES DKIM); its code completed sign-in. Earlier 3 test emails the same day went via Resend because a RESEND_API_KEY in the host env silently overrides EMAIL_PROVIDER=ses. | Link · 2026-10-20 |
| Measured by Bot2Bot | Dependency audit (production) | 0 advisories in production deps; 9 high in devDependencies only (eslint-config-next / shadcn → braces/micromatch). npm audit 2026-10-20. | Link · 2026-10-20 |
| Measured by Bot2Bot | Secrets scan (our copy) | gitleaks: only test fixtures and Next.js cache local keys (false positives / test secrets). No live credentials in source tree. | Link · 2026-10-20 |
| Measured by Bot2Bot | SES Essentials list price (new accounts) | $0.16 per 1,000 outbound emails (0–10M/mo); à-la-carte $0.10/1,000 still listed | Link · 2026-10-20 |
| Measured by Bot2Bot | beehiiv Lite @ 1k / 10k (yearly) | 1,000: $49/mo; 10,000: $119/mo (yearly). Monthly: $59 / $139. | Link · 2026-10-20 |
| Measured by Bot2Bot | beehiiv existing-customer price change | New pricing for existing customers on first renewal on/after 2026-11-01 | Link · 2026-10-01 |
Acceptance criteria
- Builder $ claims traced to his X posts or mailcheap.ai/pricing with dates
- Repo installs and tests on Node 22 from README
- Run-cost math at stated volumes with cited pricing pages
- Reliability: tests + local health/sign-in; live SES path tested where possible, untested parts marked
- Security: npm audit + gitleaks on our copy; beehiiv via public Trust Center only
- Feature match vs beehiiv public feature list (newsletter-core subset)
- Labeled quick; no invented numbers
No token usage export or invoice. Build cost is builder_stated / unverified.
No AI tokens required to run the app once deployed. Upstream note: marclou/mailcheap had 41 commits on main after our pin bb82ec64 as of 2026-10-23 (GitHub API); this receipt stays pinned to bb82ec64.
Run cost services
- Host: Vercel Hobby or any Node 22+ ($0 on Hobby; not deployed in this run)
- MongoDB Atlas Free / M0 ($0) — not connected in this run (our box blocks TCP 27017); local mongod used
- Amazon SES us-west-2 (sandbox; one live transactional send 2026-10-20; production access not requested)
- Upstash QStash Free (required for campaign batches; token valid, fan-out not exercised — needs a public APP_URL)
- Upstash Redis Free (optional rate limits; used live in this run)
Status pages
Subscription it replaces
beehiiv (Lite (Up to 1,000 subscribers, yearly)) — $49.00/mo checked 2026-10-20. Source · see also /prices
Reliability notes
Measured: 1032/1032 automated tests pass. Local /api/health 200; allowlisted admin sign-in works. Live 2026-10-20 (production build): MailCheap's transactional sign-in email sent through Amazon SES us-west-2 sandbox (SendEmail 200 in 112 ms, SES counted 1 send, 0 bounces) and reached Gmail in ~1 s, but landed in Spam (no domain DKIM in sandbox setup); the emailed code completed sign-in. Upstash Redis rate limiting worked live. Note: with RESEND_API_KEY present, MailCheap silently sends its own emails via Resend instead of SES (our first 3 test emails did). Not measured: campaign send / QStash fan-out, subscribe/unsubscribe live, inbox placement with a DKIM-signed domain, MongoDB Atlas (our box blocks outbound TCP 27017; local mongod used).
Security check
Tested 2026-10-20 · Status: Pass
- npm audit (full and --omit=dev) on commit bb82ec64
- gitleaks git + dir on our local clone
- beehiiv public Trust Center only (no probing)
- Production dependencies: 0 npm advisories.
- DevDependencies: 9 high (eslint-config-next / shadcn → braces stack-exhaustion GHSA-vfj7-8cjw-p6xm); not in production bundle.
- gitleaks flagged only hashed test OTP secrets in tests/*.mjs and local .next cache keys — not production credentials.
- MailCheap SECURITY.md documents account isolation, hashed API keys, closed Better Auth OTP HTTP routes, and private vuln reporting via GitHub Security tab.
- beehiiv: SOC 2 Type 2 as of 2026-01-22 per https://security.beehiiv.com/ (public Trust Center; report itself not reviewed by us).
Own business
- Total / mo
- $0.64
- Hosting / mo
- $0.64
Self-host: you own the stack and compliance burden. No SOC 2 on the open-source project. beehiiv publishes SOC 2 Type 2 on its Trust Center.
SES list price and plan defaults can change (Essentials default for new accounts from 2026-07-21). Upstash free-tier limits apply. beehiiv renewals move 2026-11-01.
Estimate at 4k emails/mo. Add your ops time.
Sell @ 10 customers
- Hosting / mo
- $6.40
AGPL-3.0: offering MailCheap as a network service to others triggers source-sharing obligations. Prefer MailCheap Cloud or a clean-room product if you sell newsletter SaaS.
Same SES/Upstash risk; plus support load for 10 customers.
Estimate: 10 publishers × 4k emails/mo = 40k emails → SES Essentials ~$6.40/mo (same math as the operator 10-user tier); free tiers may still cover Atlas/Redis/QStash. Compliance and AGPL dominate.
Sell @ 100 customers
- Hosting / mo
- $64.00
Expect paid Atlas/Redis/QStash, SES production, deliverability ops, and likely SOC 2 asks. Do not treat this OSS as a drop-in beehiiv replacement for regulated buyers.
At ~100 publishers × ~4k emails each ≈ 400k emails/mo → SES Essentials ~$64 before other services; QStash may leave free tier.
Rough SES-only floor at 400k emails/mo Essentials ($64); the operator 100-user tier adds an $8 placeholder for Redis/QStash ($72). Not a measured multi-tenant deploy.
Reproducible setup
- git clone https://github.com/marclou/mailcheap.git @ bb82ec64
- npm ci (Node >= 22)
- npm test → 1032/1032
- npm run build → ok
- Local mongod + next dev with MONGODB_URI, BETTER_AUTH_SECRET, SUPPRESSION_HASH_KEY, ADMIN_EMAILS, EMAIL_FROM, SENDING_ENABLED=false
- 2026-10-20 live: next start (NODE_ENV=production) with SES keys (us-west-2), Upstash Redis, EMAIL_PROVIDER=ses, EMAIL_FROM=jordan@bot2botlabs.com (SES-verified identity), local mongod
- Sign-in code requested 3x for jordan@bot2botlabs.com; all 3 delivered to Gmail; code completed sign-in; /admin read SES account (GetAccount 200)
- Instrumented TLS/HTTPS hook: zero SES SendEmail calls during the 3 sends; SES SentLast24Hours stayed 0 -> emails went via Resend (RESEND_API_KEY present in host env)
- Final send: server started with env -u RESEND_API_KEY; 1 sign-in code to jordan@bot2botlabs.com -> SES SendEmail 200 (112 ms), MessageId 010101a15a6e7162-7cfa7283-042e-459c-bd79-5592186498d8-000000; SentLast24Hours 1; Gmail Spam; code completed sign-in
- Not run: campaign send (needs SES_SNS_TOPIC_ARN + DKIM-verified domain + tenant), QStash fan-out (needs public APP_URL), Atlas (TCP 27017 blocked from box)
- 2026-10-23: upstream check only — 41 commits on marclou/mailcheap main since bb82ec64 (GitHub API compare); not re-run, pin kept
Repo: https://github.com/marclou/mailcheap
License: AGPL-3.0-only
Sources
Disclosure
Verification: Partially Verified. Bot2Bot Labs (internal quick receipt; $0 spend)
Quick receipt. Install, tests, build, local sign-in, audits, and public price/feature pages measured. Verified live 2026-10-20: MailCheap's transactional email (sign-in code) sent through Amazon SES (MessageId 010101a15a6e7162-7cfa7283-042e-459c-bd79-5592186498d8-000000, SES counted 1 send, 0 bounces) and delivered to Gmail in ~1 s, though to Spam in our sandbox setup without domain DKIM; Upstash Redis rate limiting live. Still untested: campaign send and QStash fan-out (needs an SNS topic for SES events, a DKIM-verified sending domain, and a public URL for QStash callbacks), live subscribe/unsubscribe, inbox placement, and MongoDB Atlas (port 27017 blocked from our box; local MongoDB used). Builder build $ and hours unverified.
Get this receipt for your AI-built app — Receipt Scan $19 →
For AI and citation
Machine-readable summary and citation line for crawlers, assistants, and footnotes. Content is always in the page HTML.
Key facts, quotable summary, and how to cite
More receipts
- Everything Accounting vs QuickBooks: clone run cost · price date 2026-10-30
- GridCraft vs Excel: clone run cost · price date 2026-10-28
- Minilytics vs DataFast: clone run cost · price date 2026-10-26
- free-slack-clone vs Slack: clone run cost · price date 2026-10-21
- PhotoCraft vs Photoshop: clone run cost · price date 2026-10-19
- All receipts →