Tech stack for a newsletter platform (2026)
Paid newsletter platform, designed by StackPrism from one sentence: 8 components, a reason for each, and the live checks that watch them.
The stack
Next.js
Vercel
PostgreSQL
- Inngest
Resend
Stripe
Clerk
Sentry
“A newsletter platform where writers publish posts to the web and by email, readers subscribe for free or pay monthly, and writers see opens, clicks and subscriber growth.”
Make it yours. Open this stack in the editor to check its health, harden it and hand it to your coding agent. No sign-up, nothing to generate.
Start from this stackSelect a component to see what it does and what it connects to, or pick one above to see what breaks if it goes down. Pinch or use the buttons to zoom.
Why this stack
Posts are published on a Next.js site on Vercel and sent by email, both from the same PostgreSQL database. Vercel serverless functions handle the API: writers sign in with Clerk, readers subscribe, and Stripe’s webhooks mark who has paid. Sending a post to every subscriber is slow work, so the functions queue it as Inngest jobs and the emails go out through Resend. Sentry reports errors.
Why each piece
All 8 components on the diagram: what each one does, what it talks to, and what stops if it goes down.
Next.js Web App
Runs on Vercel
Public newsletter site. Calls Vercel Serverless Functions, Sentry (errors) and Clerk (auth).
Nothing else on the diagram depends on it.
Vercel Serverless Functions
Runs on Vercel
API and workflows. Calls PostgreSQL (reads/writes), Sentry (errors), Resend (sends), Stripe (webhooks), Inngest (jobs) and Clerk (verifies). Called by Next.js Web App.
If it goes down, 1 of 7 components stops working.
PostgreSQL
App system of record. Called by Vercel Serverless Functions (reads/writes).
If it goes down, 2 of 7 components stop working.
Inngest
In External Services
Background jobs. Called by Vercel Serverless Functions (jobs).
If it goes down, 1 of 7 components degrades.
Resend
In External Services
Email delivery. Called by Vercel Serverless Functions (sends).
If it goes down, 1 of 7 components degrades.
Stripe
In External Services
Payments platform. Called by Vercel Serverless Functions (webhooks).
If it goes down, 1 of 7 components degrades.
Clerk
In External Services
Auth provider. Called by Next.js Web App (auth) and Vercel Serverless Functions (verifies).
If it goes down, 2 of 7 components stop working.
Sentry
Error monitoring. Called by Vercel Serverless Functions (errors) and Next.js Web App (errors).
If it goes down, 2 of 7 components degrade.
When this stack fits
- Writers publish once, and the post goes to the web and to inboxes.
- Free and paid subscriptions, with Stripe deciding who gets the paid posts.
- A small team that wants every piece managed.
When to pick something else
- You want to write rather than build: hosted newsletter platforms already do all of this.
- Open and click statistics need your email provider’s event webhooks stored next to your posts, which this diagram doesn’t draw.
- Lists in the hundreds of thousands: compare email providers on sending limits and deliverability before you commit.
What you need to build this
8 components across 8 areas of the stack.
Build it with your AI agent
Hand the stack to Claude Code, Codex, Cursor or any coding agent as a brief: how it connects, install steps and a build plan.
Frontend1
- Docs
Next.js Web App
Public newsletter site
npm install next
Backend & APIs1
Inngest
Background jobs
Data1
- Docs
PostgreSQL
App system of record
Auth1
- Docs
Clerk
Auth provider
npm install @clerk/nextjs
Payments1
- Docs
Stripe
Payments platform
npm install stripe
Email & messaging1
Resend
Email delivery
Hosting & infra1
- Docs
Vercel Serverless Functions
API and workflows
Observability1
- Docs
Sentry
Error monitoring
npm install @sentry/nextjs
Install
npm install next @clerk/nextjs stripe @sentry/nextjs
SDKs only. Pick your own database driver or ORM.