Ghost
Modern open-source publishing platform for professional bloggers and publishers with built-in memberships and newsletter features.
Websites Using Ghost
What Is Ghost?
Ghost is a modern, open-source publishing platform built on Node.js and designed specifically for blogs, newsletters, and membership-based publications. Launched in 2013 by John O'Nolan and Hannah Wolfe after a successful crowdfunding campaign, Ghost set out to be a focused alternative to general-purpose content management systems, optimizing the entire experience around professional writing, audience growth, and subscription revenue.
Ghost is operated by the Ghost Foundation, a non-profit organization, and the platform's commercial arm, Ghost(Pro), funds ongoing development. The project has publicly reported powering many thousands of publications and channeling millions of dollars in revenue to independent creators through its native subscription tools, reflecting its position as a leading independent-publishing platform.
The software is free and open source under the MIT license, so you can self-host it on your own Node.js infrastructure, or pay for Ghost(Pro) managed hosting. Unlike PHP-based systems, Ghost runs on a JavaScript server stack, which contributes to its reputation for speed and a clean, modern codebase.
Ghost is a self-hosted or managed server application rather than a browser extension or plugin. It renders content server-side and ships with recognizable markup, asset paths, and an admin interface, which makes it relatively easy to identify from the outside while remaining lightweight and fast for visitors.
What sets Ghost apart from general-purpose systems is its narrow, opinionated focus. Where WordPress tries to be everything to everyone, an ecommerce store, a corporate site, a forum, a blog, Ghost commits fully to professional publishing and the business of building a paying audience. That focus shapes the entire product. There is no plugin marketplace promising thousands of ways to bolt on functionality, because the features that matter most to publishers, a clean editor, fast pages, email newsletters, and subscription billing, are built directly into the core. For a writer or media business, this means less assembly and maintenance and more time spent on the work that actually grows the publication.
How Ghost Works
Ghost is built with Node.js and exposes a clean separation between content, presentation, and delivery. Content is created in a distraction-free, card-based editor: each block of content, whether a paragraph, image, gallery, embed, or custom HTML, is a distinct "card," which keeps the writing experience focused while still supporting rich media. Dynamic cards include callouts, toggles, bookmark cards, and email-only content that appears solely in newsletter versions.
Presentation is handled by themes written in the Handlebars templating language. The default theme, Casper, ships with every install and produces a recognizable, clean blog layout; many sites run Casper or a close derivative. Themes define templates for the home page, posts, pages, tags, and authors, and Ghost renders these server-side for fast, SEO-friendly output.
Ghost's defining capability is native membership and monetization. The platform includes built-in support for free and paid member tiers, integrates with Stripe for payments, and manages the full subscription lifecycle. Publishers can gate content by tier, creating a seamless paywall, and the integrated newsletter system emails posts directly to members as part of the publishing workflow, removing the need for a separate email service provider.
For developers, Ghost offers a Content API (read-only JSON access to published content) and an Admin API for programmatic management, enabling fully headless setups where a separate front end consumes Ghost content. Because Ghost generates lean pages and caches aggressively, it performs strongly out of the box, and Ghost(Pro) adds managed infrastructure with global CDN delivery.
The publishing-and-monetization workflow is best understood end to end. A writer drafts a post in the editor, deciding whether it will be public, available only to free members, or reserved for paid subscribers. When they publish, Ghost can simultaneously render the post on the website and send it as an email newsletter to the appropriate segment of members. A reader who hits a paywalled post sees the membership portal, signs up or upgrades through Stripe, and immediately gains access, with Ghost handling billing, renewals, and access control automatically. There is no separate email platform to sync, no third-party membership plugin to configure, and no custom paywall code to maintain. This tight integration of content, email, and payments is the core reason creators choose Ghost over assembling the same capabilities from separate services.
Ghost also leans on integrations and automation rather than a sprawling plugin model. It connects to external tools through native integrations, webhooks, and a Zapier-style automation layer, so publishers can route new signups into a CRM, post to social channels, or trigger downstream workflows without bloating the core application. This keeps the platform lean while still fitting into a broader marketing and operations stack.
How to Tell if a Website Uses Ghost
Ghost exposes several consistent fingerprints. StackOptic checks them from the server side, and you can verify each one manually.
Generator meta tag. The most direct signal is a <meta name="generator" content="Ghost ..."> tag in the page source, frequently including the version number, which makes Ghost easy to confirm at a glance.
The /ghost/ admin path. Ghost's administration interface lives at /ghost/. Visiting that path on a Ghost site loads the admin sign-in screen (a single-page app) rather than returning a 404.
Ghost asset paths. Front-end assets are served from predictable locations such as /assets/ within the active theme and Ghost's built-in scripts. Default installs reference Casper theme assets, a recognizable markup pattern.
The membership portal script. Sites using Ghost memberships load portal.min.js, the script that powers the subscribe and sign-in portal. Finding it is a strong signal that the site runs Ghost with memberships enabled.
Powered-by hints and structured data. Ghost often emits a "Powered by Ghost" reference and includes JSON-LD structured data with Ghost-style publisher markup, both of which reinforce detection.
| Method | What to do | What Ghost reveals |
|---|---|---|
| View Source | "View Page Source" on a post or the home page | The Ghost generator meta tag, Casper theme markup, portal.min.js |
| Browser DevTools | Inspect the Network tab and Elements | Requests for portal.min.js, theme /assets/ files, the /ghost/ app |
| curl -I | curl -I https://example.com | Response headers and caching hints; pair with curl -s to grep the HTML |
| Wappalyzer | Run the extension on the live page | Identifies "Ghost" (often with version) under CMS/Blogs |
| BuiltWith | Look up the domain | Current and historical Ghost usage plus hosting profile |
A quick check is to open /ghost/ on the domain, or run curl -s https://example.com | grep -i 'content="Ghost'. For the full methodology, see our guides on how to tell what CMS a website is using and how to find out what technology a website uses.
Ghost sites are generally easy to identify because the platform makes little effort to hide itself, and most publishers have no reason to. The generator meta tag with its version number, the /ghost/ admin route, and the membership portal script are all present on a typical install. Even on a heavily customized theme that replaces the default Casper markup, the underlying signals tend to persist: the admin path does not move, the membership portal still loads portal.min.js when subscriptions are enabled, and Ghost's structured data continues to describe the publication in a recognizable way. When a site has gone headless, serving its content through a separate front end built on a JavaScript framework, the front end itself may not look like Ghost at all, but the content API endpoints and the still-accessible admin betray the underlying platform. Combining several of these signals, rather than trusting any one in isolation, is what makes detection dependable, and pulling the raw server response makes those signals easy to read without browser interference.
Key Features
- Distraction-free editor. A card-based writing experience with rich media and email-only content blocks.
- Native memberships. Built-in free and paid tiers with Stripe integration and full subscription management.
- Integrated newsletters. Send posts as email to members directly from the publishing workflow.
- Content gating. Tier-based paywalls without third-party plugins.
- Headless APIs. A read-only Content API and an Admin API for custom front ends and automation.
- Fast Node.js core. Lean, server-rendered pages with aggressive caching for strong performance.
- SEO and structured data. Clean markup, automatic sitemaps, canonical URLs, and JSON-LD out of the box.
Pros and Cons
Pros
- Purpose-built for publishing, with memberships and newsletters integrated rather than bolted on.
- Fast and lightweight thanks to its Node.js foundation and lean themes.
- Excellent default SEO and structured data with minimal configuration.
- Open source with the option to self-host and avoid platform lock-in.
Cons
- Narrower scope than general-purpose systems: not ideal for complex, non-publishing sites or ecommerce.
- A smaller theme and integration ecosystem than WordPress.
- Self-hosting requires a Node.js environment, which some hosts do not support as readily as PHP.
- Advanced custom functionality often means working with the APIs rather than installing plugins.
Ghost vs Alternatives
Ghost competes most directly with WordPress for publishers and with hosted newsletter platforms for creators. The table clarifies its niche.
| Platform | Focus | Memberships/newsletters | Best for |
|---|---|---|---|
| Ghost | Professional publishing | Native, built in | Bloggers, newsletters, paid memberships |
| WordPress | General-purpose CMS | Via plugins | Content sites needing flexibility and a plugin ecosystem |
| Substack | Hosted newsletters | Native (hosted only) | Writers wanting zero-setup newsletters |
| Medium | Hosted publishing | Native (platform-owned audience) | Writers prioritizing reach over ownership |
| WordPress + WooCommerce | Content plus commerce | Plugins | Sites combining publishing with a store |
If a site turns out not to be Ghost, the same signals point to the real platform; compare Ghost with the general-purpose Joomla or the enterprise-grade Drupal to see the contrast in scope.
Use Cases
Ghost is the natural choice for independent writers and media businesses built around subscriptions. Newsletter creators use its native email and membership tools to publish and monetize from a single platform, avoiding the cost and complexity of stitching together a CMS, an email service, and a payments provider.
It also fits professional and company blogs that want fast, SEO-friendly publishing, paid communities and premium content libraries gated by tier, and developers building headless sites that consume Ghost's Content API. For technology and market research, identifying Ghost typically signals a publishing-focused, subscription-oriented operation, which is valuable context when profiling media brands, creators, or content-led startups.
Picture a few typical adopters. An independent journalist leaving a traditional outlet might launch a paid newsletter on Ghost, charging a monthly subscription and emailing each new piece directly to subscribers. A software company might run its engineering blog on Ghost to benefit from fast, clean pages and strong default SEO without burdening its marketing team with a heavyweight CMS. A niche media brand might build a premium content library, free articles to attract an audience and paywalled deep-dives to convert them, all managed from a single dashboard. The common thread is a business model where content directly drives revenue and the publishing experience is the product.
From a competitive-intelligence standpoint, spotting Ghost on a domain is a meaningful data point. It strongly suggests a publication-first organization that is serious about audience and, often, subscriptions. For vendors selling to media companies or creators, that is a high-value qualifying signal; for analysts mapping a content niche, it helps distinguish independent, subscription-driven publishers from sites running general-purpose platforms. Surfacing that signal automatically across many domains is exactly the kind of insight a technology-detection tool is designed to deliver.
Frequently Asked Questions
Is Ghost free to use?
The Ghost software is free and open source under the MIT license, so you can download and self-host it at no licensing cost on your own Node.js server. The Ghost(Pro) managed-hosting service is a paid product whose revenue funds development of the open-source project. Many creators choose Ghost(Pro) to avoid server maintenance, while developers comfortable with Node.js often self-host.
How do I know if a blog uses Ghost?
Look at the page source for a <meta name="generator" content="Ghost ..."> tag, which usually includes the version. You can also visit /ghost/ to see if the admin sign-in loads, check the Network tab for portal.min.js, and look for Casper-style theme markup. Tools like Wappalyzer and BuiltWith confirm Ghost, and a single curl -s URL | grep 'content="Ghost' works from any terminal.
What is portal.min.js?
portal.min.js is the JavaScript that powers Ghost's membership "portal," the pop-up interface for signing up, signing in, and managing subscriptions. When a Ghost site has memberships enabled, this script loads on the front end. Spotting portal.min.js in the Network tab or page source is a strong indicator that the site runs Ghost and is using its subscription features.
Is Ghost better than WordPress for blogging?
For focused publishing, newsletters, and paid memberships, Ghost offers a more streamlined, opinionated experience with those features built in and excellent default performance and SEO. WordPress is far more flexible and has a vastly larger plugin and theme ecosystem, making it better when you need ecommerce, complex page building, or unusual functionality. The right choice depends on whether you value focus and speed or flexibility and breadth.
Can Ghost be used headlessly?
Yes. Ghost provides a read-only Content API that delivers published content as JSON, plus an Admin API for programmatic management. Developers commonly pair Ghost's content back end with a separate front end built in frameworks like Next.js, Gatsby, or Astro, keeping Ghost's editor and membership tooling while rendering the public site elsewhere. The default themed front end remains available for those who do not need a custom stack.
Want to detect Ghost and the rest of a site's technology stack instantly? Run any URL through StackOptic at https://stackoptic.com.