CLI tool
TryGhost/Ghost avatar
TryGhost/Ghost

Ghost: A Node.js Publishing Platform That Pairs a Managed Service with a Self-Hosted Core

Ghost is a publishing platform for websites, newsletters, memberships, subscriptions, and paid content.

55,309 stars11,960 forksJavaScriptMIT

At a glance

What is it?
Ghost is an open source publishing platform for websites, newsletters, memberships, and paid content. The repository is the MIT-licensed core, while the project steers most users toward a paid managed service.
Who is it for?
Ghost suits individual creators, small publishers, and teams that want a focused publishing system with built-in membership and subscription features, without assembling a stack of separate tools. It is the wrong choice if you need a general-purpose CMS with arbitrary content types, or if you strongly prefer full control over your hosting environment.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Ghost Actually Solves

Ghost is a publishing platform aimed at people who run websites, newsletters, memberships, subscriptions, and paid content. The README positions it as a single tool for all of those, which is a specific value proposition: you do not need to stitch together a static site generator, a mailing list service, and a payment processor. The target user is someone who publishes regularly and wants a dedicated publishing workflow rather than a general-purpose CMS. The repository itself is the open source core, but the README is blunt about the recommended path. It says the easiest way to get a production instance deployed is with Ghost(Pro), the managed service, and that for most people this ends up being the best value option because of how much time it saves. That framing matters: this is not a project that hides its commercial layer. The open source code exists, but the project's own documentation steers you toward paying for hosting.

How the Architecture Is Presented

The README does not describe the internal architecture in detail, but the repository layout and the install instructions reveal the shape of the system. Ghost is a JavaScript project, and the primary distribution path is a CLI tool called ghost-cli, installed globally via npm. The CLI handles installation, configuration, and presumably upgrades. There is a local mode and a production mode. The local mode is for getting up and running in under a minute on your own machine. The production mode runs on a server and includes automatic SSL setup using LetsEncrypt. That is a concrete mechanism: the CLI wraps the deployment process, which means you are not manually configuring nginx or certbot. The README also references a monorepo, with a contributing guide and codebase documentation, so the source is organized as multiple packages. The actual data flow, such as how the admin panel talks to the API or how membership payments are processed, is not covered in the README. You would need to read the docs or the source to get that, and the README points you to docs.ghost.org for themes and API work.

Getting It Running: Commands and Config

The quickstart is straightforward. You install the CLI globally with npm install ghost-cli -g. Then, for a local install, you run ghost install local. For a server, you run ghost install, and the README says this includes automatic SSL setup using LetsEncrypt. The production install is documented separately for Ubuntu, so there is a specific hosting stack expectation. The README also links to a recommended hosting stack page and an upgrading guide. Notably, there is no mention of Docker, systemd units, or environment variables in the README. The CLI abstracts those details. If you are an advanced developer, the README directs you to the contributing guide and the monorepo documentation. That is the extent of the setup material. There is no config file syntax shown in the README, so you would rely on the CLI's interactive prompts or the docs for things like database credentials or mail settings. The simplicity is a feature, but it also means you are trusting the CLI to make decisions for you.

Where Ghost Is the Wrong Tool

The README's own framing reveals a limitation: Ghost is built for publishing, not for arbitrary content management. If you need a site with custom post types, complex taxonomies, or heavy application logic, Ghost will fight you. The platform is oriented toward articles, newsletters, and membership flows. There is no mention of plugins or extensions in the README, so you should assume the feature set is fixed by the core team. Another limitation is the hosting model. You can self-host, but the project's own documentation says the managed service is the best value for most people. That means the open source core is real, but the project's sustainability depends on Ghost(Pro) revenue. If you self-host, you take on upgrades, backups, and security yourself. The README mentions that Ghost(Pro) includes backups, security, and maintenance, which implies self-hosting does not. For a non-technical publisher, that is a significant burden. For a technical team, it is manageable but still a cost.

The Managed Service Versus Self-Hosting Trade-off

The README is candid about the business model. Ghost(Pro) is the official managed service, and the README says 100% of its revenue goes to the Ghost Foundation, funding maintenance and development. That is a notable structure: the open source project and the commercial service are the same entity. The trade-off is clear. If you use Ghost(Pro), you pay to save time and support the project. If you self-host, you keep your money but spend time on operations. The README gives a concrete example of the difference: Ghost(Pro) includes a worldwide CDN, backups, security, and maintenance. A self-hosted install requires you to handle those. The CLI reduces the setup friction, but it does not eliminate ongoing maintenance. Upgrades are a documented concern, with a dedicated page for upgrading Ghost. That suggests upgrades are not always trivial. The choice between managed and self-hosted is not just about cost; it is about how much operational work you want to own.

A Real Alternative: WordPress

The most direct alternative to Ghost is WordPress. WordPress is also a publishing platform, but it is a full CMS with a plugin ecosystem, custom post types, and a massive theme market. The difference in approach is fundamental. Ghost is a closed-core platform with a narrow focus on publishing and subscriptions. WordPress is an open ecosystem where you can build almost anything. If you need flexibility, WordPress gives you more room, but that flexibility comes with complexity: plugin conflicts, security patches, and performance tuning. Ghost's CLI and managed service aim to remove that complexity. The trade-off is that you trade flexibility for simplicity. For a newsletter-heavy site with memberships, Ghost's built-in features are a strong fit. For a site that needs a forum, a directory, or custom forms, WordPress has a plugin for that, while Ghost would require custom development or a separate tool. The README does not mention WordPress, but the comparison is unavoidable for anyone evaluating publishing platforms.

Maintenance, Upgrades, and License

The repository shows active maintenance. The last push is dated 2026-08-27, and there are recent releases at v6.61.0, v6.60.0, and v6.59.0, with the latest release on the same day as the last push. That indicates a regular release cadence, likely weekly or bi-weekly. The README links to a dedicated upgrading guide, which suggests upgrades are a normal part of the workflow and may require attention. For self-hosted users, that means you need a process for applying updates. The license is MIT, which is permissive. You can use, modify, and distribute the code with minimal restrictions. The README also notes that Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd., and there is a trademark policy. That means you can use the software freely, but you cannot use the name or logo in ways that imply endorsement. This is a standard arrangement, but it is worth noting if you plan to offer a hosted service and call it Ghost.

Who Should Adopt It and What to Verify

Ghost is a good fit for a solo writer, a small editorial team, or a business that wants to publish articles and sell memberships without building a custom system. The built-in newsletter and subscription features are the core value. If your primary goal is to write and monetize content, Ghost covers that in one package. It is a poor fit if you need a general-purpose CMS or if you want to avoid a managed service dependency. Before adopting it, verify that your hosting environment meets the documented requirements, especially if you plan to self-host on Ubuntu. Check the upgrade guide to understand the upgrade process and how often releases come out. If you are considering Ghost(Pro), look at the pricing page to see if the cost fits your revenue model. The repository itself is healthy, with recent releases and an MIT license, but the real decision is about whether you accept the platform's constraints and its hosting model.

Editorial conclusion

Ghost suits individual creators, small publishers, and teams that want a focused publishing system with built-in membership and subscription features, without assembling a stack of separate tools. It is the wrong choice if you need a general-purpose CMS with arbitrary content types, or if you strongly prefer full control over your hosting environment. Before adopting it, verify your hosting plan against the documented requirements, confirm that the membership and newsletter features cover your monetization needs, and decide whether you will pay for Ghost(Pro) or maintain your own server. The repository is actively maintained with frequent releases, and the MIT license keeps your options open, but the project itself pushes you toward the managed service, so weigh that cost against your time budget.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes