Elements vs Substack

Markdown

Substack is a publishing platform for writers, podcasters and video creators, made by Substack Inc. A writer publishes posts on their own Substack site, and each post is also emailed to subscribers, who read it in their inbox, on the web or in Substack's iOS and Android app. Writers mark each post free or paid, host podcasts and video, go live, and talk with readers in comments and subscriber chats. Readers find new publications through Substack's network of recommendations, Notes and collaborations, and Substack says "more than half of new subscribers come from Substack's built-in network." Substack is free to start. When a writer turns on paid subscriptions, Substack keeps a share of that revenue, and credit card fees come out of the writer's part (pricing).

Elements is not a publishing platform. It is an integrated app environment for building web apps with an AI agent. For a writer, that means the pieces of a paid newsletter come in the box: Stripe subscriptions, a Postgres database holding posts and readers, emails rendered from templates and handed to a provider such as Postmark, sign-in, and jobs that run on a schedule. An agent can assemble them from a prompt into a newsletter the writer runs on a server they rent.

Substack's price is a share of revenue, so it grows with each paid subscriber, and the platform, the reader app and the network stay Substack's. Your own newsletter is a flat monthly bill instead, and its readers can live in the same database as your CRM and your product sales. What you give up is the network. Whether that trade makes sense depends on how much of your growth comes from Substack, and on how much you earn.

What Substack Gives You That Is Hard to Build

Substack is more than software for sending posts, and some of what it does, an app you build cannot reproduce.

What Building It Looks Like

A paid newsletter is a small set of parts: posts, subscribers, payments, email and a schedule. Here is where each Substack feature lands:

Substack feature In an app you build with Elements
Posts on a public site, with an archive Server-rendered Elements HTML pages that read posts out of Postgres (html, database)
Free and paid subscriptions Stripe Checkout sells the subscription, and your database records which readers are paid (subscriptions)
Paid posts with a preview for free readers A page that checks the reader's subscription and shows the first paragraphs to readers who are not paying (session)
Reader accounts and sign-in Sign-in and sessions, with readers as rows in your own database (authentication recipe)
Each post emailed to subscribers The post rendered as an Elements HTML email and handed to Postmark or another SMTP provider (email)
Scheduled posts A background job scheduled for the publish time, queued in your database (jobs)
Upgrade, cancel and update a card Upgrade and cancel from your app (subscriptions), and Stripe's customer portal for cards
Subscriber counts and revenue A dashboard that updates live as people subscribe, using a LiveTable (livetable)
Comments and subscriber chat Messages that show up in every reader's open tab the moment they are posted (live comments recipe, channel)
Sales tax Stripe Tax works out the tax and collects it in the places you are registered
Fraud screening Stripe Radar
Recommendations, Notes and the reader app No equivalent. This is Substack's network, and it stays with Substack.

Stripe publishes what it charges for each of these at stripe.com/pricing. Because the CRM, the product store and the newsletter can all be tables in the same database, a reader who buys an ebook, a sponsor in your pipeline and a paid subscriber are the same kind of row, in one list of people.

The Demo: Letterhearth

Letterhearth is a paid newsletter in the Substack mold: an AI agent built it with Elements from one prompt, and readers pay $8 a month by card or read for free. They sign up with an email address, upgrade or cancel, and browse the archive, where a paid post stops after its first paragraphs for anyone not paying and asks them to subscribe. The writer writes posts in markdown with a live preview, marks each one free or paid, and publishes now or schedules for later. Publishing emails the post: free posts to every subscriber, paid posts in full to paid subscribers and as a teaser to free ones. Every email has a one-click unsubscribe link, and subscriber counts and revenue update live.

The prompt is on the demo page; give it to your agent and Letterhearth runs on your own machine, where you can make it yours. For the CRM, Dealwren shows contacts, companies, a deals board and follow-up tasks, and the two can be one app.

Adding It Up

Consider a writer who uses three services: Substack for the newsletter, a CRM for sponsors and collaborators, and Stripe for payments. Built as one app, they become one database and one list of people. Each charges in its own way:

  • Substack keeps a share of paid subscription revenue.
  • A CRM such as HubSpot charges per seat, by plan.
  • Card fees apply either way, through Substack or through Stripe.

Add up what you pay now, at your current paid revenue and at the revenue you expect. Then compare it with your own app, in three bills:

  • $100 a month to Elements, which buys two licenses: the computer you build on and the server you deploy to (pricing).
  • A server, such as a Droplet from DigitalOcean (pricing).
  • An email provider such as Postmark, which charges by monthly email volume (pricing).

A self-built app on Stripe Billing also pays Stripe a fee on recurring charges (pricing).

Substack's share grows with each paid subscriber, while Elements' cost does not. A small paid newsletter usually costs less on Substack; past some revenue, your own app costs less, and the gap grows with every subscriber. Email is the part of your own app that grows with your list: a larger list needs a larger plan, or a provider that charges per email sent, such as Amazon SES (pricing). A CRM in the same app also replaces whatever you pay for one today. The subscriptions overview works through this and other cases.

When to Keep Substack

  • Your newsletter is free. Substack charges nothing for a free newsletter, and nothing here beats free.
  • Your paid revenue is small. At that size, Substack's share costs less than running your own app.
  • Substack's network drives your growth. If many of your new subscribers come from recommendations and the app, leaving gives that up.
  • You publish podcasts or video. Substack's hosting and distribution to other platforms take real infrastructure to replace.
  • You would rather not run software. Substack does the upkeep. When a newsletter you run yourself breaks, fixing it is your job, even with an agent writing the fix.

Questions

How does Substack charge?

Substack is free to start. On paid subscriptions it keeps a share of revenue, and credit card fees come out of the writer's part. Its rates are at substack.com/going-paid.

At what revenue does my own newsletter app cost less than Substack?

When Substack's share of your paid revenue is more than your own app costs to run: Elements at $100 a month, a server, an email provider, and Stripe Billing's fee on recurring charges. Substack's share grows with each paid subscriber and Elements' cost does not, so the comparison moves toward your own app as revenue grows. Substack's rates are at substack.com/going-paid.

Can I move my Substack subscribers to my own app?

Substack says writers own their content and subscriber list, and that it is free to leave. An agent can import your posts and subscribers into your app's database. Paid subscriptions are billed through Stripe, so confirm with Substack and Stripe how existing paid subscriptions move before you switch.

Will email from my own app reach the inbox?

That depends on your email provider and your domain's authentication, which the provider walks you through. Elements renders the email and hands it to the SMTP provider you choose, such as Postmark or Amazon SES; it does not send mail without one.

Does an Elements newsletter have a reader app like Substack's?

No. An Elements app is a website that readers open in a browser or reach from your emails. Substack's app, recommendations and Notes are part of its network and have no equivalent in an app you build.