アーキテクチャ・意思決定比較表
Substack と Ghost のデータ構造、運用コスト、ライセンスリスクの違いを詳細に分析します。
Executive Summary
The fundamental division between Substack and Ghost lies in the trade-off between centralized network distribution and decentralized software sovereignty. Substack functions as an opinionated, closed-ecosystem SaaS that trades a 10% revenue share for built-in audience discovery, requiring zero infrastructure management. In contrast, Ghost is a developer-centric, open-source Node.js platform that provides complete code control, data sovereignty, and zero platform transaction fees, demanding either self-hosting expertise or managed cloud infrastructure.
10-Dimension Comparison
| Dimension | Substack | Ghost |
|---|---|---|
| Pricing | Free; 10% platform cut on paid memberships + Stripe fees | 100% free open-source (MIT); managed Ghost(Pro) from $9/mo |
| Self-Hosting | Impossible (Proprietary SaaS) | Fully supported (Node.js/MySQL, Docker, digital ocean, VPS) |
| API Support | Extremely limited (No open write APIs, basic RSS/embeds) | Comprehensive (RESTful Admin & Content APIs, Webhooks) |
| Integration Count | Minimal (Curated, basic tracking pixels only) | High (Native integrations, Zapier, custom middleware, SDKs) |
| Learning Curve | Zero (Writers can launch in under 5 minutes) | Moderate (Requires DNS, theme, or server deployment knowledge) |
| Community Support | Publisher-focused forums, limited developer ecosystem | Large open-source community, active GitHub, developer forums |
| Security | Fully managed by Substack (SOC 2 compliant, DDoS protected) | Shared responsibility (Self-hosters must secure own stack) |
| Scalability | Scaled automatically, but core features cannot scale | Highly scalable (Decoupled headless architectures, custom caching) |
| UI/UX Usability | Standardized, minimalist editor; zero design flexibility | Feature-rich block editor (Koenig); fully customizable themes |
| Support | Basic email-only ticketing system | Community-driven for self-hosted; priority email for Ghost(Pro) |
Substack Overview
Launched in 2017, Substack has established itself as a turnkey SaaS platform designed to democratize newsletter publishing. By eliminating technical friction, it enables writers to launch, distribute, and monetize subscription newsletters without writing a single line of code. Substack’s core value proposition relies heavily on its built-in recommendation network, native mobile application, and cross-promotion mechanics, which drive organic discovery for nascent publications.
However, this operational convenience comes with severe structural trade-offs for technical teams and enterprise publishers. Developers are locked into a highly restrictive sandbox: custom JavaScript is strictly prohibited, raw CSS styling is non-existent, and deep marketing analytics are heavily constrained to protect the platform’s simplified environment.
Furthermore, the platform’s 10% tax on paid subscriptions acts as an escalating financial penalty on successful publications, making it highly inefficient at scale compared to self-hosted alternatives. For organizations prioritizing custom user experiences, robust data pipelines, and raw ownership of their tech stack, Substack’s walled garden quickly becomes a limiting bottleneck, forcing technical decision-makers to evaluate highly extensible, open-source alternatives.
Ghost Overview
Ghost is an open-source, Node.js-powered publishing platform licensed under the permissive MIT license. Originally founded as a modern, lightweight alternative to WordPress, it has evolved into a premier headless CMS and subscription ecosystem designed specifically for developers and independent publishers. Ghost natively bundles newsletter delivery, membership management, and subscription paywalls directly into its core, running on a highly performant, modern technology stack.
It offers absolute database and data sovereignty: technical teams have direct access to the underlying MySQL database, can build bespoke, lightning-fast themes using the Handlebars templating engine, and can leverage Ghost’s robust REST APIs. By treating editorial content as structured JSON, Ghost integrates seamlessly into modern Jamstack architectures, allowing developers to build decoupled, headless frontends using frameworks like Next.js, Remix, or Astro.
Because there are absolutely zero platform transaction fees under its open-source license, Ghost empowers high-volume publishers to retain 100% of their subscription revenue (excluding standard Stripe gateway fees). This makes it the modern gold standard for engineering-driven publishing operations requiring infinite design flexibility, custom backend integrations, and absolute structural ownership of their digital real estate.
Deep-Dive Comparison of Core Feature Modules
1. Content Delivery & Subscription Paywalls
Substack relies on a standardized, monolithic delivery system. Paid subscription tiers are binary: a post is either free, paid-only, or for founding members. Stripe is natively bound to the platform, meaning Stripe billing flows, checkout pages, and portal states cannot be customized. While reliable, this rigid model prevents complex monetization strategies like multi-tiered team plans, metered paywalls, or localized pricing strategies.
Ghost, by contrast, treats memberships and content gating as highly configurable database relations. Publishers can construct unlimited subscription tiers, offer localized pricing, configure free trials, and build custom multi-member team subscription portals.
Because Ghost handles billing via direct Stripe API integration, developers can build bespoke billing flows, run custom promotional webhooks, and inject customized checkout scripts. Content is gated server-side via Node.js middleware, ensuring that paywalled content is fully stripped from the DOM before being sent to the client, preventing basic frontend bypass attacks.
2. Extensibility, API Architecture, & Modern Integrations
Substack has no public write API. Developers cannot programmatically create posts, update subscriber metadata, or trigger custom transactional events. Integrations are restricted to basic analytics pixels (such as Google Analytics or Meta Pixel) and limited Zapier triggers. This makes it impossible to integrate Substack into a wider corporate ecosystem or data warehouse (e.g., Snowflake, BigQuery).
Ghost is built from the ground up on a decoupled, API-first architecture. It exposes three primary API interfaces:
- Content API: A read-only JSON API used to fetch posts, authors, and tags for headless frontends.
- Admin API: A write-enabled REST API secured by JWTs, allowing programmatical content creation, membership updates, and automated migrations.
- Webhooks: Highly granular triggers that fire payloads on user signup, subscription changes, post publications, and deletion events.
Using Ghost’s API-first framework, modern engineering teams can construct advanced automated workflows. For example, editors can orchestrate serverless pipelines that run content through state-of-the-art LLMs—such as Claude 4.8 Sonnet for automated localization and metadata schema generation, or GPT-5.5 via serverless edge functions to run automated code-syntax verification on technical tutorials.
3. Discovery, Growth, & Network Mechanics
Substack’s primary competitive advantage is its centralized growth engine: the Substack Network. The platform features an automated recommendation system where publishers recommend other newsletters during the user signup flow. This network drive is incredibly effective; Substack reports that over 40% of all new subscriptions and 15% of paid subscriptions originate within its own ecosystem. It also provides native group chats, notes (a Twitter-like social feed), and a unified reader app.
Ghost has no centralized directory or unified ecosystem to drive organic traffic. To match Substack’s growth mechanics, Ghost developers must self-engineer or integrate open-source growth loops. Ghost provides native, highly optimized technical SEO controls out of the box (including structured JSON-LD schema, automated sitemaps, and canonical tags).
For recommendation loops, Ghost offers a native “Recommendations” feature that allows independent publishers to link to one another, but it operates on a peer-to-peer web model rather than a centralized marketplace. For advanced referral tracking and affiliate schemes, Ghost users must integrate third-party services like Rewardful or SparkLoop via raw script injection or webhook events.
Subscription & Scale Pricing Analysis
Substack’s business model charges a flat 10% fee on all gross subscription revenue, in addition to standard credit card processing fees (typically 2.9% + $0.30 per transaction via Stripe).
With Ghost, the software is free and open-source under the MIT license. Hosting costs are fixed, regardless of subscriber count or revenue volume. If you choose to host on Ghost’s managed service, Ghost(Pro), pricing scales based on the size of your email list, but never takes a cut of your subscription revenue.
The Math of Scaling: Substack vs. Ghost (Self-Hosted Node.js / VPS)
Let’s model a publisher charging $10/month per subscriber. We assume standard Stripe transaction fees apply equally to both platforms. We will compare Substack’s 10% cut against a self-hosted Ghost instance deployed on a robust cloud virtual private server (VPS) with a third-party transactional email service (e.g., Mailgun) for newsletter delivery.
-
Low Scale: 500 paid subscribers ($5,000/mo gross revenue / $60,000/yr)
- Substack Cost: $500/mo ($6,000/yr platform fee) + $50 custom domain setup fee.
- Ghost Self-Hosted Cost: ~$15/mo VPS (DigitalOcean) + ~$15/mo Mailgun fee = $30/mo ($360/yr).
- Annual Difference: Ghost saves $5,690.
-
Mid Scale: 2,500 paid subscribers ($25,000/mo gross revenue / $300,000/yr)
- Substack Cost: $2,500/mo ($30,000/yr platform fee).
- Ghost Self-Hosted Cost: ~$40/mo VPS (scaled for traffic) + ~$120/mo Mailgun bulk email sending = $160/mo ($1,920/yr).
- Annual Difference: Ghost saves $28,080.
-
Enterprise Scale: 10,000 paid subscribers ($100,000/mo gross revenue / $1,200,000/yr)
- Substack Cost: $10,000/mo ($120,000/yr platform fee).
- Ghost Self-Hosted Cost: ~$120/mo High-Availability cluster + ~$450/mo enterprise bulk email sending = $570/mo ($6,840/yr).
- Annual Difference: Ghost saves $113,160.
As the dataset demonstrates, the 10% licensing model of Substack scale-penalizes successful publications. For technical organizations, the savings yielded by running a self-hosted or managed Ghost instance easily cover the engineering overhead required to maintain it.
Who Should Choose Substack?
- Solo Authors and Bootstrapping Writers: Content creators launching a brand-new publication from scratch with zero budget, minimal technical expertise, and no existing audience. The built-in recommendation network is essential for early-stage discovery.
- Lean Editorial Teams with Zero Engineering Resource: Organizations that cannot dedicate development time to server maintenance, security patching, DNS routing, or custom theme development.
- Basic Publisher Models: Newsletters that only require standard text-and-image formats and simple, binary (free or paid) subscription models without complex transactional workflows.
Who Should Choose Ghost?
- Software Engineering & Tech Teams: Organizations where developers want complete control over the web stack, database access, custom CSS, deployment pipelines, and custom Handlebars-based UI themes.
- Scale and High-Revenue Enterprises: Media companies generating over $50,000 annually in subscription sales. Migrating to Ghost instantly recovers thousands of dollars lost to Substack’s 10% platform tax.
- Headless & Jamstack Architects: Engineering departments seeking to use a decoupled CMS architecture where Ghost serves as the content creation and API administration backend, while rendering content on a modern, lightning-fast static frontend (e.g., Astro, Next.js).
Migration Assessment: Substack to Ghost
Migrating production workloads from Substack to Ghost is straightforward but requires technical preparation to preserve SEO authority and subscription states.
1. Data Structure Parsing
Substack allows you to download your posts in a .zip archive containing HTML files and a basic metadata CSV. Ghost supports native Substack import files. However, custom formatting, embedded iframe elements, or interactive code snippets often break during conversion.
- Action: Write an automated Node.js script utilizing a parser like
jsdomto sanitise raw Substack HTML, convert standard embedded elements to Ghost’s structured Koenig JSON card format, and clean up broken image URLs before importing through the Ghost Admin API.
2. Stripe Customer Mapping
The most critical phase of migration is preserving active paid subscriptions without interrupting the user billing cycle.
- Action: Because both platforms use Stripe, you do not need to re-collect credit card information. You must request Substack to release your Stripe account from their platform connect setup. Once your Stripe account is independent, export your members’ CSV from Substack. This CSV contains the unique
stripe_customer_idfor each user. When importing this customer list into Ghost via the Admin API or the CSV import interface, you must map thestripe_customer_idand correspondingstripe_subscription_idto the matching Ghost member record. This allows Ghost’s webhooks to natively listen to future billing cycles from your existing Stripe customers.
3. URL Architecture & Redirect Preservation
Substack uses a rigid URL structure for posts: yourdomain.com/p/post-slug. Ghost’s default routing structure is yourdomain.com/post-slug/.
- Action: To prevent a complete loss of SEO rank and break existing backlinks, developers must upload a custom
redirects.yamlorredirects.jsonfile to the Ghost engine. Use regex to map the/p/subdirectories to the root directory dynamically:
Final Verdict
If your priority is zero-friction distribution and you are willing to surrender technical freedom and a 10% revenue share in exchange for a built-in recommendation network, Substack is the logical choice.
However, for technical decision-makers, engineering teams, and scaling media businesses, Ghost is the clear winner. By pairing an API-first headless Node.js architecture with complete data sovereignty and a zero-fee transaction model, Ghost provides the infrastructure, extensibility, and long-term financial viability required to build a highly customized publishing platform.
Pros & Cons Comparison
Features Both Tools Share
- Paid membership tiers and subscription management processing.
- Native email newsletter creation and broadcast delivery.
- Rich text post editor for web and email publishing.
- Custom domain configuration for publications.
Feature Availability: Only in Each Platform
Feature Availability Checklist
Data verified as of 2026-06-25. Please check the official pages of Substack and Ghost for live pricing.
よくある質問
How do Substack and Ghost differ regarding website design control and marketing integrations?
Substack offers minimal control over website design, custom CSS, and advanced page layouts, alongside very basic marketing automation and third-party tracking integrations. Ghost, an MIT-licensed Node.js platform, provides deep flexibility for customization while operating as a dedicated blogging platform with built-in memberships and newsletter tools.
What hidden transaction and domain costs should I expect when launching on Substack versus self-hosting Ghost?
Substack charges a one-time $50 custom domain setup fee and a 10% platform fee taken from paid subscriptions, on top of Stripe payment processing fees of 2.9% plus $0.30 per transaction. Self-hosting the MIT-licensed Node.js codebase of Ghost allows you to bypass Substack's 10% scaling revenue cut entirely, though you must manage your own hosting infrastructure.
機能と価格データは公式ドキュメントと料金ページを出典としており、最終確認日は 2026年6月25日 です。 誤りを見つけましたか?お知らせいただければ修正します。