PermissiveMITTested by Geekflare

Ghost review

Publishing platform for blogs, newsletters and paid memberships

Data refreshedMethodologyHow we tested
Founder of Geekflare

Chandan Kumar is a founder of Geekflare. He is a technology enthusiast and entrepreneur who loves to help businesses and people around the world. Chandan has worked at BNP Paribas, Citibank, Deutsche Bank, Motorola, and HP. He’s got an in-depth understanding of business software and IT infrastructure.

Verdict

The best open source choice for publishing business. It includes posts, email newsletters and paid memberships in one app, with Stripe payments built in. It's deliberately focused, so it isn't a fit for general websites or custom content types.

Best for

Media companies, creators and B2B teams running a blog with a newsletter and paid memberships

Not for

General-purpose websites or apps that need custom content types

Pros

  • Stripe payments built in, with no extra plugin
  • Fast, clean editor
  • All MIT, with nothing locked to a paid edition
  • Official Docker image

Cons

  • MySQL only in production
  • No custom content types beyond posts and pages
  • No SSO for staff accounts
Ask Sparkian

Is Ghost right for your project?

Describe what you're building and AI will check the fit against this review.

Or try:

At a glance

Type
Publishing
Stack
Node.js 22 or 24 / MySQL 8
Databases
MySQL
Licence terms
The whole platform is MIT. Ghost(Pro) plans restrict the hosted service, not the software.
SSO
No
Roles and permissions
Free edition
Audit logs
Not documented

Free vs paid editions

What you get when you self-host, and what needs a paid plan.

Self-hosted Ghost is fully MIT, with memberships, paid subscriptions, newsletters and the Admin API included. Ghost(Pro), the hosted service run by the non-profit Ghost Foundation, starts at $18 a month billed yearly. Its Starter plan leaves out custom themes, paid subscriptions and integrations, and SSO is only on the Custom plan. Self-hosted Ghost has no built-in SSO.

Self-hosting Ghost

Ghost recommends Ubuntu 22.04 or 24.04 with at least 1 GB of RAM, Node.js 22 or 24, MySQL 8 and NGINX. Its own Docker Compose setup is still labelled preview, so we tested Docker's official ghost image with MySQL 8.4.

New cloud server to first screen

1 min 10 s

Memory in use at idle

636 MB of 4 GB

Version tested

6.71.0 · Oct 16, 2026

  • On the first try Ghost started before MySQL was ready, failed to connect and shut down. Adding a MySQL health check and restart: always fixed it, and the compose file below includes both.
  • With that fix, Ghost was ready in 70 seconds on a cloud Ubuntu 24.04 server (2 vCPU, 4 GB RAM), image downloads included.
  • At idle, Ghost used about 160 MB of RAM and MySQL about 475 MB.
docker-compose.yml (what we ran, with passwords changed)
services:
  ghost:
    image: ghost:6-alpine
    restart: always
    depends_on:
      db:
        condition: service_healthy
    ports: ["2368:2368"]
    environment:
      url: https://blog.example.com
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: change-me
      database__connection__database: ghost
    volumes: [content:/var/lib/ghost/content]
  db:
    image: mysql:8.4
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: change-me
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-pchange-me"]
      interval: 5s
      retries: 30
    volumes: [db:/var/lib/mysql]
volumes: { content: {}, db: {} }
A fresh Ghost 6.71.0 site with its default theme

A fresh Ghost 6.71.0 site with its default theme

A fresh Ghost 6.71.0 site with its default theme
Ghost 6.71.0 admin setup screen

Ghost 6.71.0 admin setup screen

Ghost 6.71.0 admin setup screen

What you can build with Ghost

Paid newsletter

Free and paid tiers, Stripe checkout and email delivery in one app. Self-hosted Ghost sends bulk email through Mailgun.

Company blog with an email list

Any post can go out as an email, and readers sign up through the built-in Portal.

Independent publication

Staff roles for contributors, authors, editors and admins, with tags and more than one author per post.

Members-only content

Make each post public, members-only or paid-only, so you choose what sits behind the paywall.

Headless blog

Use the Content API to bring posts into a Next.js or Astro site.

Moving off Substack

Ghost imports posts and subscribers from Substack, so you keep your list when you move.