What Is Ghost CMS? Modern Blogging Platform Explained

Ghost is an open-source CMS built primarily for "publishing content" — not a do-everything general-purpose CMS. Its strengths are speed, a clean writing experience, and a built-in paid membership system. This guide explains how Ghost differs from WordPress and what hosting considerations come with it.

Ghost — A CMS Born for Publishing

Ghost launched in 2013, created by John O'Nolan, a former core WordPress contributor, and built with Node.js instead of PHP. Ghost's philosophy is to do one thing as well as possible — writing and publishing articles. It therefore avoids the complexity of WordPress's vast plugin system, gaining lightness and speed in return.

Ghost's Technology Stack Explained

Ghost uses Node.js as its primary runtime, running on the Express.js framework with Handlebars as the theme templating engine. The database layer supports both SQLite (for development environments) and MySQL/MariaDB for production deployments. Ghost uses its own purpose-built Lexical editor rather than a third-party library, which results in a noticeably smoother and faster writing experience compared to WordPress's editor.

Ghost ships a REST Content API and Admin API out of the box. This means developers can pull article data into any front-end framework — Next.js, Astro, or similar — making "headless Ghost" a popular architecture choice for teams that need maximum performance without sacrificing Ghost's publishing workflow.

Component Technology Used Notes
Runtime Node.js (LTS) Requires Node.js 18 or later
Database MySQL / SQLite MySQL recommended for production
Email (newsletters) Mailgun / SMTP Needs separate configuration
Reverse proxy Nginx Ghost-CLI configures this automatically
SSL Let's Encrypt Automated by Ghost-CLI

How Ghost Differs from WordPress

WordPress tries to be everything — blog, shop, corporate site — by relying on many plugins. Ghost chooses a narrower scope and goes deeper. Core SEO tools — canonical URLs, Schema, sitemaps — are built in without extra plugins, and the editor is a clean block-based one that keeps you focused on content. The trade-off is a much smaller ecosystem and far more limited customization.

Built-in Membership and Paid Newsletters

What makes Ghost stand out is its built-in Membership and Paid Subscription system. Creators can open sign-ups, send newsletters to subscribers' inboxes, and charge monthly or annual membership fees — with no external plugin. This makes Ghost a direct fit for the "earn revenue from content" model.

Ghost Runs on Node.js — What That Means for Hosting

Because Ghost is built with Node.js rather than PHP, it cannot run on typical shared hosting (which is designed for PHP). It needs an environment that runs Node.js, a process manager, and a reverse proxy you set up yourself. In practice this means a VPS with root access, and ideally at least 1GB of RAM.

Worth knowing: If your team is comfortable with shared hosting + DirectAdmin and doesn't want to manage a server, WordPress may be more convenient. But if you want speed and a built-in membership system, Ghost on a VPS is the more direct path.

Two Ways to Install Ghost: Ghost(Pro) vs Self-Host

Ghost(Pro) is the official managed hosting service from the Ghost team — pay monthly and never manage a server yourself. Self-hosting means installing Ghost on your own VPS using Ghost-CLI, which sets up Nginx, SSL, and systemd for you. Self-hosting controls cost better and keeps your data in your own hands, in exchange for handling server updates and security yourself.

Installing Ghost with Ghost-CLI on a VPS

Ghost-CLI is the command-line tool that makes installing and updating Ghost straightforward. Here is a concise overview of the process:

  1. Prepare a VPS running Ubuntu 22.04 LTS with at least 1GB RAM, and point your domain's DNS to the server's IP.
  2. Install Node.js LTS, Nginx, and MySQL on the server.
  3. Create a dedicated database and database user for Ghost.
  4. Install Ghost-CLI globally via npm.
  5. Run ghost install and answer the prompts about your domain and database credentials.
  6. Ghost-CLI configures Nginx and requests a Let's Encrypt SSL certificate automatically.
# Install Ghost-CLI globally
npm install ghost-cli@latest -g

# Create directory and install Ghost
mkdir /var/www/ghost && cd /var/www/ghost
ghost install

# Check Ghost status
ghost status

After installation, Ghost runs as a systemd service and restarts automatically on server reboot. Upgrading to a newer Ghost version is as simple as running ghost update.

Ghost and the Creator Economy

Ghost is designed to align directly with the Creator Economy model. Writers and content creators do not need to depend on centralised platforms like Substack or Medium — they can own their audience and revenue entirely. The Tiers feature lets you gate content for free members, paid members, or keep it publicly readable, all within the same post.

Ghost integrates with Stripe as its primary payment gateway. Once Stripe is configured, the membership system works immediately with no extra coding. Ghost itself charges zero platform fees — all revenue flows directly from Stripe to the creator, with only the standard Stripe processing fee deducted.

Feature Ghost (Self-hosted) Substack
Revenue cut 0% (Stripe fee only) 10% + Stripe fee
Domain ownership Fully yours Substack subdomain
Subscriber data Stays in your DB Held by Substack
Design control Full (custom themes) Very limited
Upfront cost Monthly VPS fee Free until revenue begins

Who Suits Ghost — and Who Should Look Elsewhere

Ghost suits bloggers, writers, small news outlets, and newsletter creators who want a fast site and a membership system. Those who want to run an online store, build a heavily customised site, or avoid managing a VPS should consider WordPress or another CMS that better fits the job.

Ghost Theming and Customisation Options

Ghost uses a theme system built on the Handlebars template engine. You can create or modify themes by editing .hbs files directly, or install a ready-made theme from the Ghost Marketplace — both free and paid options are available. A well-built theme gives you full control over every page type: the home page, post listings, individual posts, member landing pages, and paid subscription sign-up pages.

Developers wanting to decouple the front end entirely can run Ghost in headless mode. The Ghost Content API supports JWT authentication and returns JSON data, so a front end built with Next.js, Astro, or any React framework can fetch and render posts without touching Ghost's own theme layer. This headless pattern delivers the best possible performance but requires front-end development skills to set up and maintain.

Customisation approach Best suited for Key advantage
Ready-made theme General bloggers Fast to install, no coding needed
Custom Handlebars theme Front-end developers Full design control
Headless Ghost + Next.js Teams needing maximum performance Static generation, CDN-ready

Securing Ghost on a VPS

Because Ghost runs on a VPS with root access, server security is entirely the owner's responsibility. After installation, confirm that Nginx is configured correctly and that any unnecessary ports are closed. Ghost itself does not expose port 2368 publicly — Ghost-CLI places Nginx as a reverse proxy in front of it — but it is worth verifying this with sudo ufw status.

Keeping Ghost updated is equally important. The Ghost team releases security patches regularly, and running ghost update through Ghost-CLI takes only a few minutes. Ghost-CLI automatically backs up the database before every update, keeping the risk of upgrading very low. Additional hardening steps worth taking include:

Ghost's Email Newsletter System

One of the features that sets Ghost apart from most CMS platforms is its integrated email newsletter system. Once SMTP or Mailgun is configured, Ghost can automatically deliver new posts directly to subscribers' inboxes — no separate email marketing tool like Mailchimp or ConvertKit required. This reduces costs significantly as a subscriber list grows.

Ghost supports basic email segmentation, allowing you to send newsletters to free members, paid members, or both within the same post. Writers can choose whether to deliver the full post by email or send only an excerpt with a link back to the site, which drives return traffic. The system includes built-in open-rate tracking so you can monitor what percentage of subscribers actually open each issue. Combined with the zero platform-fee monetisation model, this makes Ghost a genuinely competitive alternative to dedicated newsletter services for serious content businesses.

Frequently Asked Questions

Can Ghost be installed on shared hosting?

No. Ghost needs a Node.js environment, so it requires a VPS or the Ghost(Pro) service.

Can Ghost sell products online?

Ghost is designed for publishing and memberships, not shopping carts. To sell products, use WooCommerce or OpenCart.

What VPS size is enough for Ghost?

Start at 1GB RAM or more for a small site, then scale the spec with your readership and member count.

Install Ghost on a Node.js-Ready VPS

VPS from ฿500/month · full root access · datacentres in Thailand / Singapore

View VPS Plans