Build · Intermediate · A weekend
Build a paid newsletter and creator site with open-source software
A site, a paid newsletter and an audience you own, without beehiiv or Kit fees.
Instead of paying for beehiiv, Kit Creator and Pro, Mailchimp, MailerLite, Brevo, SurveyMonkey, Typeform, Canva or Miro.
What you'll build
A home for your writing that you own outright: a fast website, free and paid newsletter tiers, reader surveys and your own graphics, with no platform taking a cut of subscriptions. Platforms like beehiiv, Kit and Substack charge by audience size or take a share of revenue; here the costs are a server and email sending. It suits writers, podcasters and creators who want to keep their list if they ever move.
Blueprint
Ghost runs the site, memberships and paid posts. listmonk handles bigger campaigns outside Ghost. Formbricks asks readers what they want, and Excalidraw makes the post graphics.
- You Posts, tiers and prices Ghost
- Ghost Members exported for wider campaigns listmonk
- Formbricks What readers want next You
- Excalidraw Diagrams and post images Ghost
The repos
- 01 · Site and paid newsletter Ghost
Open-source publishing platform with a website, email newsletters, member signups and paid subscriptions via Stripe; self-host or Ghost(Pro).
- Setup
- Medium; npm install ghost-cli then ghost install, with NGINX, MySQL 8 and a domain for production source
- Hardware
- Server with at least 1 GB memory for production source
- Paid extras
- Newsletter delivery requires Mailgun (SMTP not supported for bulk mail); Stripe needed for paid memberships
- 02 · Bulk email lists listmonk
Self-hosted newsletter and mailing list manager in a single Go binary with PostgreSQL; lists, SQL segments, templates, analytics and archives.
- Setup
- Easy; download binary or docker compose up, plus a PostgreSQL database source
- Hardware
- Light; a production instance sent 7M+ emails using a fraction of one core and 57 MB peak RAM source
- Paid extras
- App is free; you need an SMTP server or sending service such as Amazon SES to deliver mail
- 03 · Reader surveys Formbricks
Self-hostable survey platform for link, website, in-app and email surveys with logic, webhooks and integrations; some team features are Enterprise.
- Setup
- Medium; one-click Ubuntu script or Docker Compose, needs a domain with HTTPS source
- Hardware
- 2 vCPU, 4 GB RAM, 20 GB SSD for evaluation; 4 vCPU, 8 GB RAM for low load source
- Paid extras
- Core is free with unlimited responses; Enterprise adds branding removal, teams and roles, contacts, SSO, audit logs, spam protection
- 04 · Graphics Excalidraw
Hand-drawn style infinite whiteboard for sketches, diagrams and wireframes, with end-to-end encrypted collaboration on excalidraw.com.
- Setup
- Easy to use at excalidraw.com; medium to self-host with Docker (no collaboration when self-hosted) source
- Hardware
- Not documented
- Paid extras
- None required
Step by step
Install commands change, so each step links to the repo's own docs for the exact commands.
-
Ask readers what they want
Create a short Formbricks survey and link it from your welcome email. Use the answers to plan your next month of posts.
Uses Formbricks · its docs
-
Make your graphics
Use Excalidraw for diagrams and simple post images; it works in the browser, or self-host it.
Uses Excalidraw · its docs
Watch out
Ghost sends bulk newsletters through Mailgun, which is a paid service.
Take it further
- Offer a free email course as a sign-up incentive, sent from listmonk.
- Add a sponsor slot to each issue and track clicks.
- Publish an annual reader survey report as a post.
Questions
What does it cost to run?
A small server, a domain, and Mailgun for sending once your list grows; there are no per-subscriber platform fees.
Can I move my existing list?
Yes. Export members from your current platform as CSV and import them into Ghost.
Do I need listmonk as well as Ghost?
Not at first. Ghost handles the newsletter; listmonk is for extra lists and campaigns later.
Every repo here is open source, still maintained and checked against its own documentation. How we check →