Introduction
Ghost was launched in 2013 as "WordPress done right for writers". Over the years it evolved into a full publishing platform with memberships, email newsletters, and tiered paid subscriptions — directly competitive with Substack while being open-source and self-hostable.
With over 52,000 GitHub stars, Ghost powers publications like Sky News, Buffer, OpenAI (blog), Square, Stripe Press, and thousands of independent writers. The Ghost Foundation (non-profit) owns the project, giving long-term stewardship away from investor pressure.
What Ghost Does
Ghost provides a JSON REST API, an admin UI, a theme system (Handlebars templates), a powerful editor (Koenig, built on Lexical), and a membership platform with Stripe integration. It can drive a website, a newsletter-only publication, an API-only headless setup, or all three at once.
Architecture Overview
[Node.js Backend (Ghost)]
|
[Admin + Content APIs (REST)]
|
+-------+-------+---------+---------+
| | | | |
Posts Members Emails Themes Integrations
Stripe Mailgun Zapier/Webhooks
|
[Theme System (Handlebars)]
default Casper theme, 100s of community themes
|
[Storage]
MySQL (production) or SQLite (dev)
file uploads (local / S3 / GCS)Self-Hosting & Configuration
// config.production.json
{
"url": "https://blog.example.com",
"server": { "port": 2368, "host": "127.0.0.1" },
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "ghost",
"password": "changeme",
"database": "ghost_prod"
}
},
"mail": {
"transport": "SMTP",
"options": {
"service": "Mailgun",
"auth": { "user": "postmaster@...", "pass": "..." }
}
},
"storage": { "active": "local" },
"logging": { "transports": ["stdout"] }
}# Common Ghost CLI commands
ghost start / stop / restart
ghost ls # list installed instances
ghost update # upgrade to latest Ghost
ghost backup # DB + content dump
# Deploy workflow (self-hosted)
# 1. Point DNS to the server
# 2. ghost install -> pick Letsencrypt SSL
# 3. Configure Stripe + Mailgun in Admin UI -> Settings -> Membership / Email
# 4. Install a theme: Admin -> Design -> Upload theme .zipKey Features
- Koenig editor — modern block editor with cards (email, CTA, gallery, code)
- Memberships + paid subscriptions — Stripe-backed, tiered access
- Email newsletters — built-in delivery via Mailgun, Amazon SES, SMTP
- Headless or full CMS — Content API powers Gatsby, Next.js, Astro frontends
- Themes — Handlebars templates, hot-reloadable
- SEO + performance — fast Node.js, AMP, structured data, sitemaps
- Multi-language — i18n in admin UI and theme rendering
- Zapier / Webhooks / REST API — full integration surface
Comparison with Similar Tools
| Feature | Ghost | WordPress | Substack | Medium | Hugo / Astro |
|---|---|---|---|---|---|
| Self-hostable | Yes | Yes | No | No | Yes (static) |
| Paid memberships | Built-in (Stripe) | Plugins | Built-in | Built-in | Manual |
| Email newsletters | Built-in | Plugins | Built-in | Limited | Via 3rd party |
| Theme ecosystem | Moderate | Largest | None | None | Growing |
| Speed | Very fast | Depends on plugins | SaaS | SaaS | Fastest (static) |
| Hosting cost (self) | Low | Low | Free | Free | Very low |
| Best For | Pro publishers + paid lists | Universal CMS | Managed newsletters | Managed blogging | Static-site blogs |
FAQ
Q: Ghost vs Substack? A: Ghost is self-hosted + you own everything (content, subscriber list, CSS, domain). Substack is managed but takes a 10% revenue cut + ties you to their newsletter domain. Many publications migrate from Substack to Ghost once revenue exceeds the hosting cost difference.
Q: Ghost vs WordPress? A: WordPress is more flexible (plugins for everything), Ghost is more focused (fast, modern writing + publishing UX, built-in paid memberships). For a tech-minded writer, Ghost is lower-maintenance.
Q: Can I use Ghost headless? A: Yes. Point any static site generator (Gatsby, Next.js, Astro, 11ty) at the Content API and render posts wherever you want. Ghost provides the CMS + memberships; your frontend handles the UX.
Q: What about Ghost(Pro)? A: Ghost(Pro) is the managed service from the Ghost Foundation (revenue funds the open-source project). Same software, just hosted. $9–$199/mo based on member count.
Sources
- GitHub: https://github.com/TryGhost/Ghost
- Website: https://ghost.org
- Foundation: Ghost Foundation (non-profit)
- License: MIT