ConfigsApr 14, 2026·3 min read

Ghost — Professional Publishing Platform for Modern Journalism

Ghost is an open-source publishing platform built for professional publishers. It bundles a blazing-fast Node.js CMS, Substack-style paid memberships, email newsletters, and SEO — everything a modern publication needs, self-hosted.

TL;DR
Ghost is an open-source Node.js CMS with paid memberships, newsletters, and SEO for publishers.
§01

What it is

Ghost is an open-source publishing platform built for professional publishers and creators. It bundles a Node.js CMS, paid memberships via Stripe, email newsletters, and SEO tooling into a single self-hostable package. Ghost was launched in 2013 as a focused alternative to WordPress and has evolved into a full publishing stack.

Ghost is maintained by a non-profit foundation, which gives it long-term stewardship independent of investor pressure. It serves publications, newsletters, and API-only headless setups.

§02

How it saves time or tokens

Ghost provides a complete publishing infrastructure in one install. Instead of assembling separate tools for CMS, email newsletters, membership management, and payment processing, Ghost handles all of these natively. The Koenig editor (built on Lexical) supports rich content including embeds, galleries, and code blocks. Stripe integration for paid subscriptions requires only an API key, not custom payment code. Theme customization uses Handlebars templates, which are simpler than full React or Vue frontends for content-focused sites.

§03

How to use

  1. Install Ghost CLI and set up a local development instance:
npm install -g ghost-cli
ghost install local
  1. Visit http://localhost:2368/ghost to create your admin account and start publishing.
  1. For production deployment on Ubuntu with Nginx, MySQL, and SSL:
sudo -i -u ghost-mgr
mkdir /var/www/blog && cd /var/www/blog
ghost install
# Interactive setup: domain, database, SSL, systemd service
§04

Example

Using the Ghost Content API to fetch posts programmatically:

const GhostContentAPI = require('@tryghost/content-api');

const api = new GhostContentAPI({
  url: 'https://your-blog.com',
  key: 'your-content-api-key',
  version: 'v5.0'
});

// Fetch recent posts
const posts = await api.posts.browse({
  limit: 10,
  include: 'tags,authors',
  filter: 'visibility:public'
});

posts.forEach(post => {
  console.log(`${post.title} - ${post.published_at}`);
});
§05

Related on TokRepo

§06

Common pitfalls

  • Running Ghost on shared hosting with insufficient memory causes crashes. Ghost requires at least 1GB RAM for stable operation, and 2GB is recommended for sites with email sending.
  • Not configuring a mail transport (Mailgun, Amazon SES) means newsletter emails silently fail. Set up mail configuration before enabling the newsletter feature.
  • Using the local SQLite database in production leads to performance issues with concurrent users. Always use MySQL in production environments.

Frequently Asked Questions

Is Ghost really free and open source?+

Yes. Ghost is MIT licensed and fully open source. The Ghost Foundation (a non-profit) maintains the project. You can self-host Ghost at no cost. Ghost(Pro) is the optional hosted service that funds development.

How do paid memberships work in Ghost?+

Ghost integrates directly with Stripe for payment processing. You set up membership tiers (free, monthly, annual) in the admin panel. Members sign up on your site, pay through Stripe, and get access to member-only content. Ghost handles the subscription lifecycle.

Can Ghost replace Substack?+

Ghost provides the same core features as Substack (newsletter, paid subscriptions, audience management) while being self-hosted and open source. You own your content, subscriber data, and domain. Ghost does not take a percentage of your revenue.

Does Ghost support headless CMS usage?+

Yes. Ghost exposes a Content API and Admin API that you can use with any frontend framework (Next.js, Nuxt, Gatsby). Many teams use Ghost as a headless backend while building custom frontends.

What databases does Ghost support?+

Ghost supports MySQL 8 for production deployments and SQLite for local development. The production installer configures MySQL automatically. PostgreSQL is not supported.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets