VeloCMS vs Substack

10% is a lot
to pay for someone else's domain.

Substack is a great place to start a newsletter. It is a poor place to run one once it actually earns money. The platform fee is 10%, on top of Stripe's cut. Your subscriber list lives in their database. Your blog is on their subdomain until you pay for Pro. VeloCMS gives you the same writer-focused experience — paywall, newsletter blast, magic-link auth — with zero platform fee and your data in your hands from signup.

The math on 10% adds up fast

A newsletter with 500 paid subscribers at $10/month brings in $5,000/month. Substack's 10% cut is $500 — every month, forever, regardless of what they do or don't build. That's $6,000/year going to Substack for the privilege of storing your subscriber data in their system. VeloCMS charges $29/month on the Business plan (flat, regardless of subscriber count or revenue). The math is unambiguous once your list is large enough to matter. Writers who care about owning their platform hit this ceiling within their first year of monetisation.

Your subscribers live in your database, not theirs

This is the deeper issue. On Substack, your subscribers are in Substack's database. You can export email addresses as a CSV, but the Stripe subscriptions — the ones paying the monthly fee — are tied to Substack's Stripe account. If you leave, paid subscribers have to re-subscribe on your new platform manually. Conversion on those requests averages around 40% in practice. You lose 60% of your paid base just by changing platforms. VeloCMS connects your own Stripe account from day one. Paid subscribers belong to your Stripe, not ours. You can take them anywhere without a re-subscription campaign.

Custom domain and SEO that you actually control

A Substack blog lives at yourname.substack.comby default. Custom domains exist, but they are a paid feature and Substack still controls the canonical and Open Graph tags on your posts. Every reader sees “from Substack” in the social preview. VeloCMS gives you full canonical control, custom Open Graph metadata per post, and a clean domain that readers associate with you — not with a platform that might change its fee structure next quarter.

VeloCMS vs Substack — feature by feature

FeatureVeloCMSSubstack
Platform fee on paid subscriptions0%10% of revenue
Custom domainYesLimited (Pro plan)
Subscriber data ownershipYour databaseSubstack's database
Stripe account (BYOK)Your Stripe accountSubstack's Stripe account
AI-first editorYesNo
Multi-tenancyBuilt-inNo
Email newsletter blastBuilt-in (Resend)Built-in
Per-post paywallYesYes
Full subscriber exportCSV + JSONEmail CSV only
SEO canonical controlFullLimited (Substack controls OG)

Already on Substack? Migrate in 3 steps.

  1. 1
    Export from Substack. Substack Settings → Export → Request subscriber list (CSV) and post archive. You will receive both in an email within minutes.
  2. 2
    Import to VeloCMS. Upload your post archive via Admin → Tools → Import. Upload your subscriber CSV via Admin → Members → Import. Connect your own Stripe account in Admin → Settings → Billing.
  3. 3
    Notify your subscribers. Use VeloCMS's newsletter blast to send a migration announcement to all free subscribers. For paid subscribers, send a re-subscribe link to your new Stripe checkout. The migration guide covers recommended messaging.

0% platform fee

All subscription revenue goes directly to your Stripe account. VeloCMS charges a flat monthly SaaS fee — not a percentage of what your readers pay you.

Your domain from day one

Custom domains are included on every plan. Cloudflare for SaaS provisions TLS automatically. Your blog URL is yours — no substack.com in the address bar.

Subscriber data in your database

Your reader list lives in a database you control. Export it as JSON or CSV any time from the admin panel. No support ticket, no platform permission required.

Newsletter blast built in

Send email newsletters to free and paid subscribers directly from the VeloCMS admin. Powered by Resend, with open tracking, unsubscribe compliance, and HMAC-signed unsubscribe links.

BYOK Stripe — your keys, your account

Connect your own Stripe account for paid subscriptions. Stripe payouts go to your bank account on Stripe's standard schedule. No platform wallet, no two-week payment hold.

Newsletter Hub theme

A clean, serif-forward theme designed for newsletter-first publications. Subscriber count widget, post archive, free vs paid tier visibility — ready to use without custom CSS.

What Substack migrants say

“Real customer quote coming soon. Migrated from Substack and eliminated the 10% platform fee.”

— Beta user, 2026

“Real customer quote coming soon. Migrated from Substack and eliminated the 10% platform fee.”

— Beta user, 2026

“Real customer quote coming soon. Migrated from Substack and eliminated the 10% platform fee.”

— Beta user, 2026

Frequently asked questions

Does Substack take a percentage of paid subscriptions?
Yes. Substack charges a 10% platform fee on all paid subscription revenue, on top of Stripe's standard payment processing fee (around 2.9% + $0.30). VeloCMS charges zero platform fee on subscription revenue — you wire up your own Stripe account, and all revenue goes directly to you.
Can I use a custom domain on Substack?
Substack supports custom domains, but the configuration requires a paid Substack Pro plan or manual DNS setup and is not available on the free tier by default. VeloCMS includes custom domain support on every plan, including self-hosted, with automatic TLS provisioning via Cloudflare for SaaS.
Can I export my Substack subscribers if I leave?
Substack allows CSV export of subscriber email addresses. However, Stripe subscriptions are tied to Substack's Stripe account — you cannot transfer active paid subscriptions directly. Migrating paid subscribers requires asking them to re-subscribe on the new platform. VeloCMS stores your subscriber data in your own database from day one.
Is VeloCMS good for newsletter writers?
VeloCMS is purpose-built for writers who want to own their platform. It ships a TipTap editor with AI writing assistance, a native email newsletter blast (via Resend), paywall gating per post, and a full subscriber management dashboard. The Newsletter Hub theme is designed specifically for this use case.
How do I switch from Substack to VeloCMS?
Export your Substack posts and subscriber list, then import both into VeloCMS. Posts import via a structured export or copy-paste import; subscribers import via CSV. The migration guide covers both free and paid subscriber transitions, including how to notify paid subscribers to re-subscribe on your new domain.

Your newsletter. Your subscribers. Your revenue.

14-day free trial. Import your Substack posts and subscriber list on day one. Zero platform fee, ever.