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.
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.
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.
How to use
- Install Ghost CLI and set up a local development instance:
npm install -g ghost-cli
ghost install local
- Visit http://localhost:2368/ghost to create your admin account and start publishing.
- 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
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}`);
});
Related on TokRepo
- Self-hosted tools — More self-hostable platforms and infrastructure on TokRepo.
- Content tools — Browse content creation and management tools.
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
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.
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.
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.
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.
Ghost supports MySQL 8 for production deployments and SQLite for local development. The production installer configures MySQL automatically. PostgreSQL is not supported.
Citations (3)
- Ghost GitHub— Ghost is an open-source publishing platform
- Ghost Developer Docs— Ghost Content API documentation
- Stripe Documentation— Stripe integration for membership payments
Related on TokRepo
Discussion
Related Assets
Conda — Cross-Platform Package and Environment Manager
Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool.
Sphinx — Python Documentation Generator
Generate professional documentation from reStructuredText and Markdown with cross-references, API autodoc, and multiple output formats.
Neutralinojs — Lightweight Cross-Platform Desktop Apps
Build desktop applications with HTML, CSS, and JavaScript using a tiny native runtime instead of bundling Chromium.