Recommendations

  • Pick a single platform rather than cross-posting — the ROI of multi-platform distribution is negative for a low-effort personal blog — Cross-Posting ROI for Low-Effort Blogs
  • Use Substack or Ghost (managed) for lowest publishing friction if the content is primarily text — Effort-to-Lock-In Tradeoff
  • Use Quartz or Digital Garden if publishing from the Obsidian vault matters — Obsidian-to-Blog Pipeline
  • Adopt a prompt-then-iterate workflow with Claude for AI-assisted drafting, feeding it 3-5 sample posts to match voice before each session — AI-Assisted Blogging Workflow
  • Avoid Substack as primary if monetization is a future goal — the 10% revenue cut compounds and the social graph is non-portable — Substack Lock-In Deep Dive
  • Start Ghost(Pro) at Publisher ($29/month) if monetization is a future goal — Starter’s removal of paid memberships and custom themes makes it insufficient for anything beyond a free newsletter blog — Ghost(Pro) Pricing and Tiers
  • Ghost (managed or self-hosted on a home server) remains the strongest long-term option balancing low effort with full ownership, now strengthened by ActivityPub federation and native analytics in v6.0
  • Do not treat Hashnode as a Substack alternative for monetization — it has no paid subscriptions, no paywall, and only a beta tipping feature; treat it as a free SEO-ownership platform with developer discovery — Hashnode Deep Dive
  • If monetization is not a goal and the audience is developers, Hashnode’s free custom domain model is the lowest-cost path to owning your SEO equity while reaching a built-in audience — but weigh the platform sustainability risk — Hashnode Platform Sustainability Risk

Summary

For a low-effort technical blog written with AI assistance, the platform choice reduces to a single tradeoff: publishing friction vs. lock-in risk. The prior version of this note recommended Hugo + Cloudflare Pages with cross-posting to multiple platforms — a setup optimized for maximum ownership and SEO, but one that demands ongoing effort incompatible with the user’s goals. With the optimization target shifted to minimum effort, the landscape simplifies considerably.

  • Cross-posting is not worth it for a low-effort blog — the content adaptation required to avoid SEO penalties (keeping similarity below 20%) turns a 30-minute publish into a 2-hour multi-platform operation, and the audience discovery ROI for small personal blogs is minimal.
  • Substack is the lowest-friction option but has meaningful lock-in — not primarily technical (you can export subscribers and content) but social and algorithmic (you lose the recommendation network, Notes followers, and discovery infrastructure when you leave).
  • AI-assisted drafting with Claude works well for maintaining voice when given sample posts and specific tone constraints, but Google’s E-E-A-T framework means the human iteration step is non-negotiable for SEO viability.
  • Ghost (managed or self-hosted) is the best balance of low effort and full ownership for someone who may eventually want to control their platform completely. Ghost(Pro)‘s July 2025 pricing restructure pushed paid memberships and custom themes to the 15/month) a newsletter-and-free-blog-only entry point.
  • Hashnode is not a Substack competitor on monetization — it has no paid subscriptions and only a beta tipping feature. Its actual value is free custom domain blogging with developer community discovery, making it a strong option when the goal is SEO ownership without revenue, but a poor choice for anyone planning to monetize.

Key Findings

  • Substack’s effective take-rate is 13-14% (10% platform fee + Stripe’s 2.9% + $0.30 + 0.7% billing fee), not just the headline 10% (Substack creator’s guide, retrieved: 2026-04-05).
  • Substack content exports do not include images or media — exported HTML hotlinks to Substack-hosted assets that break if the original site goes offline (Citation Needed migration analysis, retrieved: 2026-04-05).
  • Substack’s subscriber CSV export from the membership interface omits Stripe customer IDs for paid subscribers, making payment continuity during migration require workarounds via the Stripe account directly (Citation Needed, retrieved: 2026-04-05).
  • Substack Notes accounts for over 90% of new subscriber growth for early-stage publications, creating strong algorithmic dependency that is entirely non-portable (Substack creator’s guide, retrieved: 2026-04-05).
  • Google does not penalize AI-generated content per se, but requires “substantial human editing, fact-checking, and the addition of unique insights” to rank — the Helpful Content system operates as a site-wide signal that can suppress even quality pages if the domain contains substantial low-quality content (Hobo Web HCU analysis, retrieved: 2026-04-05).
  • Ghost takes 0% of subscription revenue (only Stripe’s processing fees apply), compared to Substack’s 13-14% effective rate and beehiiv’s 0% with plans starting at $15/month (beehiiv comparison, retrieved: 2026-04-05; Ghost review, retrieved: 2026-04-01).
  • Cross-posted content with over 30% text duplication sees a 65% drop in organic traffic within six months, meaning effective cross-posting requires substantial rewriting per platform (cross-posting guide, retrieved: 2026-04-01).
  • The “Great Decoupling” in 2026 SEO means search impressions stay high but clicks drop due to Google AI Overviews, reducing the ROI of SEO-focused blogging strategies for small publishers (Hobo Web HCU analysis, retrieved: 2026-04-05).
  • Claude’s voice-matching workflow — feeding it 3-5 sample posts and prompting “Analyze these posts for tone, sentence length, and typical transitions. Draft a new post on [topic] that matches my voice” — produces drafts that capture stylistic traits when combined with human iteration (Blockchain Council Claude guide, retrieved: 2026-04-05).
  • Medium has a Domain Authority of 95/100, making its articles consistently rank higher in Google than equivalent content on Substack or personal domains (Medium vs Substack comparison, retrieved: 2026-04-01).
  • Hashnode has no paid subscription or paywall capability — the only creator monetization is Hashnode Sponsors (a beta tipping feature with 0% platform cut), making it fundamentally unsuitable as a Substack alternative for revenue (Hashnode Sponsors page, retrieved: 2026-04-06; Wisp CMS comparison, retrieved: 2026-04-06).
  • Hashnode’s content export omits actual image files (only CDN URLs) and tag/series names (only IDs), meaning a complete backup requires community-built tools that download images separately via the API (GreenFlux migration analysis, retrieved: 2026-04-06; Better-Hashnode-Backups, retrieved: 2026-04-06).
  • Hashnode went months without changelog updates (last: Nov 2024), social media posts (last: Jan 2025), or support forum responses (30+ day backlogs) before the February 2026 platform redesign, signaling potential sustainability concerns for the free tier (GreenFlux migration analysis, retrieved: 2026-04-06).
  • Hashnode’s GraphQL API supports automated publishing through a two-step draft-then-publish flow (createDraft + publishDraft mutations), enabling an Obsidian-to-Hashnode pipeline, but tags require object format (name + slug), not strings (dev.to API guide, retrieved: 2026-04-06).
  • Hashnode’s free tier includes custom domain (with auto-provisioned SSL and CDN), built-in newsletter with double opt-in, AI writing assistance (GPT-3.5, upgraded to GPT-4 for Pro at $7/month), and unlimited posts — the most generous free tier of any managed blogging platform (Hashnode pricing, retrieved: 2026-04-06; Hashnode changelog, retrieved: 2026-04-06).
  • Hashnode’s community feed serves 2.3 million developers using a score-based ranking algorithm (not ML), with precomputed feeds stored in Redis for active users — smaller than Dev.to’s 7.7M monthly visits but more technically focused (System Design newsletter, retrieved: 2026-04-06; BlogBowl comparison, retrieved: 2026-04-06).
  • Ghost(Pro)‘s July 2025 pricing restructure removed paid memberships and custom themes from Starter (29/month) the minimum viable tier for monetization — a 93% effective price increase from the previous $9/month Starter that included those features (Luxe Themes pricing guide, retrieved: 2026-04-06; Sender.net pricing analysis, retrieved: 2026-04-06).
  • Ghost(Pro) includes unlimited newsletter email sends with no per-email charges on all tiers, while self-hosted Ghost requires a separate email delivery service (Mailgun, SendGrid) starting at ~$15/month — this hidden cost narrows the price gap between managed and self-hosted (Ghost hosting docs, retrieved: 2026-04-06).
  • Ghost v6.0 (August 2025) added ActivityPub federation and cookie-free Tinybird-powered analytics, positioning Ghost as the only publishing platform with native fediverse distribution — posts syndicate to Mastodon, Threads, Flipboard, and other ActivityPub platforms (Noise Amplifier Ghost v6 review, retrieved: 2026-04-06; TechCrunch fediverse coverage, retrieved: 2026-04-06).
  • Ghost’s Stripe integration supports 135 currencies and all international payment methods, while beehiiv is USD-only and credit-card-only — but Stripe is the ONLY payment processor Ghost supports, which is restrictive in countries without Stripe availability (Ghost vs beehiiv comparison, retrieved: 2026-04-06; Ghost Forum, retrieved: 2026-04-06).
  • Ghost’s content gating operates at four levels (public, free members, paid members, specific tiers) with in-post paywall dividers that allow mixing free preview content with gated content in a single post, preserving SEO value for the public portion (Abstract27 monetization guide, retrieved: 2026-04-06).
  • Ghost’s theme marketplace has 21 free themes and ~179 paid themes (29/month) or higher (Ghost Marketplace, retrieved: 2026-04-06; Luxe Themes pricing guide, retrieved: 2026-04-06).
  • Ghost is structured as an independent nonprofit organization, not a VC-backed startup — this eliminates the growth-at-all-costs incentive that drives platform enshittification and makes Ghost’s long-term incentives align with creators rather than investors (Ghost vs beehiiv comparison, retrieved: 2026-04-06).
  • Ghost has built-in migration tools for Substack, WordPress, Medium, Squarespace, and Mailchimp, with Substack migration preserving paid subscriber Stripe continuity when using the same Stripe account — but URL structures differ (/p/ vs /), requiring redirect rules to preserve SEO (Ghost migration docs, retrieved: 2026-04-06).

Open Questions

  • What is the actual subscriber growth rate on Substack for a low-volume (1-2 posts/month) technical blog vs. a self-hosted blog with equivalent content?
  • ~~How does Ghost’s managed hosting (29/month is comparable to self-hosted total cost ($25-62/month) once email delivery, CDN, and maintenance time are factored in.
  • Can Claude Code be integrated into the publishing pipeline to automate the prompt-iterate-publish workflow (e.g., draft in Obsidian, review, push to deploy)? — addressed in separate research on an automated blogging pipeline
  • What is the actual engagement difference between AI-assisted posts with human iteration vs. fully human-written posts for a technical audience?
  • Does Google’s E-E-A-T framework effectively detect AI-assisted content that has been humanized through iteration, and does it matter if the iteration is genuine?
  • If the blog doubles as audience-building for side income (digital products, micro SaaS launch audience), does that change the platform choice? — see separate research on newsletter and digital-product economics for revenue modeling by platform. Separate content-and-monetization-strategy research concluded that Cloudflare Pages + Quartz beats Ghost for this use case.
  • Will Hashnode Sponsors graduate from beta to become a viable monetization path, or will the platform need to add paid subscriptions to retain creators who outgrow tipping?
  • Is Hashnode’s team/enterprise revenue model ($199+/month) sustainable enough to guarantee the free individual tier long-term, given the communication blackout pattern observed in 2024-2025?
  • How does Hashnode’s developer community discovery actually compare to organic SEO for a low-volume technical blog — does the feed provide meaningful traffic, or is the custom domain SEO the real value?
  • How mature is Ghost’s ActivityPub integration in practice — do fediverse followers generate meaningful engagement and subscriber growth, or is it still too niche to affect a small technical blog?
  • What is Ghost(Pro)‘s actual newsletter deliverability compared to dedicated newsletter platforms (beehiiv, ConvertKit) — do open rates and inbox placement differ meaningfully?
  • Does Ghost’s Starter tier ($15/month, free members only, default theme) provide enough value over Hashnode’s free tier to justify the cost for someone not yet ready to monetize?
  • How does Ghost’s Admin API + webhooks compare to Hashnode’s GraphQL API for an automated Obsidian-to-blog publishing pipeline?

Details

Effort-to-Lock-In Tradeoff

The fundamental tension for a low-effort blog is that the easiest platforms to publish on are also the ones with the most lock-in, while full-ownership setups require upfront investment.

  • Substack is the absolute minimum effort — create an account, paste markdown, click publish. Zero setup, zero maintenance, zero cost. But the 13-14% effective revenue share and non-portable social graph mean you’re trading future flexibility for present convenience.
  • Hashnode is nearly as low-effort as Substack — create an account, add a CNAME record, and publish. Free custom domain with auto-provisioned SSL, built-in newsletter, and developer community discovery. No monetization path beyond beta tipping. SEO equity accrues to your domain.
  • **Ghost managed (29/month; Starter at $15/month is a free-newsletter-only entry point.
  • Quartz or Digital Garden requires a one-time technical setup (1-3 hours) but then publishes directly from the Obsidian vault with a git push or frontmatter flag.
  • Hugo + Cloudflare (the prior note’s primary recommendation) requires the most initial setup and ongoing maintenance — theme configuration, build pipeline, wikilink conversion scripts — but offers maximum control.
ApproachSetup TimePer-Post EffortMonthly CostLock-In RiskContent Ownership
Substack5 min5 min (paste + publish)Free (10-13% on revenue)High (social graph)Medium (export exists but lossy)
Hashnode5 min (+DNS)5 min (editor or API)Free ($7/mo Pro optional)Low (SEO on your domain)Medium (images CDN-only in export)
Ghost managed30 min10 min (write + publish)29/mo (monetized)NoneFull
Ghost self-hosted2-4 hours10 min (write + publish)~$5-20/mo serverNoneFull
Quartz1-3 hours5 min (add frontmatter, git push)FreeNoneFull
Digital Garden10-30 min5 min (add frontmatter, push)FreeNoneFull
Hugo + Cloudflare4-8 hours15 min (write, convert links, push)FreeNoneFull

The low-effort winner depends on the audience model

If the blog is primarily for personal documentation and sharing project write-ups with a small audience, Quartz or Digital Garden from the existing Obsidian vault is the lowest total effort. If building a subscriber list matters, Ghost managed at $15/month is the sweet spot between effort and ownership.

Substack Lock-In Deep Dive

Substack’s lock-in is often described as minimal because you “own your subscriber list.” The reality is more nuanced — technical portability exists but practical portability is constrained by social, algorithmic, and economic mechanisms.

  • Technical portability (what you CAN export): email addresses, subscriber names, subscription status, post content in HTML. You can export and leave at any time.
  • Technical gaps (what’s missing from exports): images and embedded media are NOT included — exported HTML hotlinks to Substack servers. Subscriber CSV from the membership interface is missing Stripe customer IDs, requiring the Ghost migrator tool or direct Stripe API access to maintain payment continuity. Newsletter preference data (which sub-newsletters each subscriber opted into) is not exportable.
  • Social graph lock-in (the real barrier): Substack Notes followers, recommendation network connections, and comment history are entirely non-portable. For publications where Notes drives 90%+ of new subscriber growth, leaving Substack means losing the primary growth engine.
  • Algorithmic dependency: Substack’s recommendation algorithm amplifies Notes that drive subscription behavior. Early-stage publications are heavily dependent on this algorithmic boost. The Matthew Effect concentrates influence — initial gains compound, making established Substacks harder to replicate elsewhere.
  • Economic lock-in: The 10% fee is invisible at small scale but compounds quickly. At 300/month (87/month in processing fees for the same revenue. The break-even point for migrating to Ghost is roughly $2,000-3,000/month in revenue.
  • Content migration gotchas: Internal links between Substack posts break. Subscribe/share buttons continue pointing to Substack. Substack continues collecting 10% fees on existing paid subscriptions until the creator explicitly disconnects from Stripe. Non-USD currency subscriptions require manual intervention to preserve original rates.
Lock-In DimensionSeverityPortable?Migration Difficulty
Email subscriber listLowYes (CSV export)Easy
Paid subscription continuityMediumPartially (needs same Stripe account)Moderate — missing Stripe IDs in default export
Post contentMediumYes (HTML) but lossyModerate — images break, links break
Images and mediaHighNo (hotlinked, not exported)Hard — must download separately
Notes followers / social graphHighNoImpossible — platform-bound
Recommendation network positionHighNoImpossible — platform-bound
Newsletter preferencesMediumNoMust re-collect from subscribers
SEO authorityMediumPartial (if using custom domain)Custom domain ($50) helps; subdomain authority stays

Platform Lock-In Comparison

Lock-in varies dramatically across platforms. The key distinction is between platforms that build authority on YOUR domain vs. THEIR domain.

  • Ghost has the lowest lock-in of any managed platform — open-source, self-hostable, full content and subscriber export, 0% platform fee. If you leave Ghost managed hosting, you can self-host the identical software.
  • Hashnode builds SEO authority on your custom domain at no cost while participating in a developer discovery network. Content is exportable in JSON/markdown, but exports omit image files (CDN URLs only) and tag names (IDs only), requiring community-built tools for complete backups. The custom domain CNAME means SEO equity is portable if you leave. Newsletter subscribers can be exported via CSV.
  • Dev.to supports canonical URLs and markdown export, but all SEO authority lives on dev.to’s domain. Best used as a distribution channel, not a primary home.
  • Medium has the strongest SEO (DA 95/100) but the worst lock-in for writers — you cannot export email addresses or directly contact your followers outside Medium. Content export exists but loses formatting.
  • Substack is portable on paper but sticky in practice due to the social graph and recommendation network.
  • Self-hosted (Hugo, Astro, Quartz) has zero lock-in by definition — markdown files in git. The “lock-in” is the time invested in the build pipeline.
PlatformContent ExportSubscriber ExportCustom DomainSEO AuthoritySocial Graph Portable?
GhostFull (JSON + markdown)Full (CSV + Stripe)Yes (included)Your domainN/A (no social features)
HashnodeJSON + Markdown (images are CDN URLs only, tags are IDs only — community tools needed for complete backup)Newsletter subscribers (CSV import/export)Yes (free, auto SSL + CDN)Your domain (CNAME to hashnode.network)No (Hashnode network)
Dev.toMarkdownN/ANoDev.to domainNo
MediumHTML (lossy)No email exportNo ($50 custom domain, limited)Medium.com domainNo
SubstackHTML (no images)CSV (missing Stripe IDs)Yes ($50 one-time)Mixed (subdomain vs custom)No
Hugo/Quartz/SSGN/A (you own files)N/AYesYour domainN/A

Cross-Posting ROI for Low-Effort Blogs

The prior version of this note recommended cross-posting with canonical URLs as “strictly superior to choosing one side.” That advice needs qualification: it is only true if you are willing to invest the effort in meaningful content adaptation.

  • The 30% duplication threshold is real — content with over 30% text duplication across platforms causes a 65% drop in organic traffic within six months. This means cross-posting is not copy-paste; it requires rewriting intros, adjusting depth, and tailoring examples per platform.
  • Time cost is significant — effective cross-posting turns a 30-minute publish into a 2+ hour multi-platform operation (rewrite intro, adjust formatting, set canonical URLs, schedule timing). For a low-effort blog publishing 1-2 posts/month, this doubles or triples the total time investment.
  • Discovery ROI is marginal for small blogs — dev.to posts average 10-15x more engagement than standalone tech blogs in year one, but this is engagement (reactions, comments), not necessarily subscribers or return readers. For a personal project blog, the discovery value may not justify the adaptation effort.
  • The “Great Decoupling” reduces SEO ROI further — Google AI Overviews are causing impressions to stay high while clicks drop, meaning even well-ranked content generates fewer actual visits than in prior years.
  • Recommendation for low-effort: publish on one platform. If using Ghost or self-hosted, optionally share links on social media (no content adaptation needed). If audience growth becomes a priority later, add cross-posting as a deliberate escalation, not a default.

AI-Assisted Blogging Workflow

AI-assisted drafting is a natural fit for prompt-based blogging about personal projects, where the user has deep context on the topic but wants help with structure and prose. The key constraint is maintaining authentic voice while using AI to reduce writing effort.

  • Claude is the strongest option for voice-matched technical writing — it produces natural, long-form prose and can match stylistic traits (sentence length, tone, transitions) when given sample posts. The prompt “Analyze these posts for tone, sentence length, and typical transitions. Draft a new post on [topic] that matches my voice” is an effective starting pattern.
  • The recommended workflow is prompt-then-iterate:
    1. User provides a topic prompt with context on the personal project work
    2. Claude generates a detailed outline with H2/H3 sections
    3. Claude drafts the post matching the user’s voice from samples
    4. User reviews, adds personal anecdotes and specific project details, fact-checks
    5. Optional second Claude pass for transitions and polish
    6. User does final review and publishes
  • Voice training requires 3-5 sample posts — feed Claude examples of prior writing and include constraints like “No hype, no buzzwords, short paragraphs, direct language.” The more specific the constraints, the better the voice match.
  • Jasper and RightBlogger offer persistent voice profiles (“Brand IQ” and “MyTone” respectively) that remember style across sessions, but both are paid services ($49-99/month). Claude achieves similar results with per-session prompting at lower cost.
  • Google does not penalize AI-assisted content as long as it demonstrates E-E-A-T (Experience, Expertise, Authoritativeness, Trust). The human iteration step — adding personal project details, unique insights, and first-hand experience — is what makes AI-assisted content rank. Mass AI content without human oversight declines over time.

AI content and E-E-A-T

Google’s Helpful Content system operates as a site-wide signal. If a blog publishes several low-quality AI-generated posts without meaningful human editing alongside quality posts, the entire domain’s ranking can be suppressed. The iteration step is not optional for SEO viability.

Blogging Platform Comparison

The platform landscape breaks into three tiers with distinct effort-to-ownership tradeoffs.

CriteriaSubstackHashnodeGhost (managed)Ghost (self-hosted)Quartz / Digital GardenHugo + Cloudflare
Setup effortNoneNone (5 min with custom domain)Low (30 min)Moderate (2-4 hr)Low-Moderate (1-3 hr)High (4-8 hr)
Per-post effortLowestLow (editor or API)LowLowVery low (frontmatter + push)Moderate (link conversion)
Obsidian compatibilityNoneNone (API possible)NoneNoneExcellent (native)Poor (needs conversion)
Content ownershipLimited (lossy export)Medium (export misses images + tag names)FullFullFull (markdown in git)Full (markdown in git)
Audience discoveryStrong (algorithm + Notes)Medium (2.3M dev community feed)SEO + newsletterSEO + newsletterWeak (niche)SEO only
MonetizationBuilt-in (10-13% cut)None (beta tipping only)Built-in (0% cut)Built-in (0% cut)NoneManual
Monthly costFree + revenue shareFree ($7/mo Pro optional)$15-199~$5-20 serverFreeFree
Lock-in riskHigh (social graph)Low (SEO on your domain, but image CDN dependency)NoneNoneNoneNone
AI workflow fitGood (paste output)Good (built-in AI + GraphQL API)Good (paste or API)Good (paste or API)Best (draft in Obsidian)Moderate (needs link conversion)

Static Site Generators

The SSG tier offers the best balance of cost, performance, and ownership for technical users, with the primary trade-off being initial setup time and lack of built-in audience discovery.

  • Hugo is the fastest SSG, written in Go, capable of building thousands of pages in milliseconds. Its opinionated structure includes built-in taxonomies (tags, categories), RSS generation, and sitemap output. The PaperMod and Blowfish themes are the current community favorites for technical blogs.
  • Astro excels at content-heavy sites with its Islands architecture and zero-JavaScript-by-default approach. It supports content collections with schema validation, making frontmatter consistency enforceable.
  • Eleventy (11ty) is the most flexible SSG, supporting multiple template languages. Version 3.0 added full ESM support. It powers the Obsidian Digital Garden plugin’s backend.
  • Hosting options are uniformly free at the hobby tier: Cloudflare Pages (500 builds/month, global CDN), Netlify (300 build minutes/month), Vercel (100 GB bandwidth), and GitHub Pages (unlimited for public repos). Cloudflare Pages has the best free tier with no bandwidth limits.

Managed Platforms

Managed platforms trade content ownership and customization for zero-maintenance publishing and built-in audience networks. The right choice depends on whether audience discovery or content ownership is the priority.

  • Substack has become the dominant newsletter platform, with 32 million new subscribers discovered through in-app recommendations in a recent three-month period. See Substack Lock-In Deep Dive for the full lock-in analysis.
  • Medium has the strongest SEO of any managed platform (Domain Authority 95/100) but the worst writer lock-in — you cannot export email addresses or contact followers outside Medium. Roughly 90% of writers earn under $100/month. Best used for republishing evergreen content to capture search traffic, not as a primary home.
  • Hashnode is the strongest option for developer-focused content because it allows custom domain publishing at no cost, building SEO authority on the author’s domain while participating in a developer discovery network. See Hashnode Deep Dive for the full analysis of its monetization gaps, newsletter limitations, export issues, and platform sustainability concerns.
  • Dev.to offers the largest developer community (1.3 million registered developers, 20 million monthly visitors) with strong feed-based discovery. Posts trend quickly through reactions. Supports canonical URLs for cross-posted content.

Self-Hosted CMS Solutions

Ghost self-hosted remains the strongest CMS option for independent publishers who want full ownership without the maintenance burden of WordPress. The Managed Ghost Deep Dive covers Ghost(Pro) managed hosting in depth.

  • Ghost self-hosted is free open-source software requiring a server running Node.js 22, MySQL 8, and optionally Docker (now the recommended deployment). It includes a clean markdown editor, built-in membership portal with Stripe integration, and excellent Core Web Vitals scores. For a homelab with a Proxmox hypervisor and a Caddy reverse proxy already in place, Ghost in Docker is a straightforward deployment. Self-hosted requires a separate email service (Mailgun/SendGrid) for newsletter delivery.
  • Ghost managed hosting starts at 29/month Publisher tier is the minimum viable plan for monetization and custom themes. All Ghost(Pro) tiers include unlimited email sends, CDN, backups, and SSL with 0% revenue share.
  • Ghost’s limitations include no plugin ecosystem, no drag-and-drop page builder, Stripe as the only payment processor, and theme customization requiring Handlebars/HTML/CSS knowledge. Native analytics (added in v6.0) are privacy-first but basic compared to dedicated analytics tools.

Obsidian-to-Blog Pipeline

For a user already writing in Obsidian, the lowest-friction publishing path is one that publishes directly from the vault without a separate authoring step.

  • Quartz 4 is the most Obsidian-native option with support for wikilinks, backlinks, graph view, transclusions, and full-text search. The ExplicitPublish filter marks notes with publish: true in frontmatter. Requires Node.js v22+ and deploys to Cloudflare Pages or GitHub Pages. Offers more customization than Digital Garden but requires slightly more setup.
  • Obsidian Digital Garden plugin is the absolute lowest-friction option — ~10 minutes to set up, pushes notes marked dg-publish: true to GitHub where Netlify builds with 11ty. Supports canvas files, Dataview queries, Excalidraw, callouts, and Mermaid. Limitations include weaker SEO and a digital-garden aesthetic rather than a traditional blog layout.
  • Hugo + Obsidian requires disabling wikilinks or running a conversion script. The workflow is: write in Obsidian, git push, Cloudflare Pages auto-deploys. Higher setup cost but more mature theming ecosystem.
  • The AI workflow integrates naturally with Obsidian-native publishing — draft with Claude in the vault, add publish: true frontmatter, push. No copy-paste to an external editor.
  • Monetization on these platforms requires external embeds — none of the Obsidian publishing options have native payment features. Payment widgets (Lemon Squeezy, Ko-fi) work on any HTML page via <script> tags regardless of the publishing plugin used.

Blogger Migration Path

The 90 existing blog posts in Blog/Posts/ represent existing content that could seed a new blog, but the migration effort should be weighed against the low-effort goal.

  • Frontmatter conversion is the primary task. A Python script can parse existing filenames to extract titles and dates, adding Hugo or Quartz-compatible frontmatter.
  • Image references in Blog/Attachments/ need auditing — some may still reference Blogger-hosted URLs.
  • Pragmatic approach for low effort: defer migration until the blog has a few new posts and a confirmed platform choice. The 90 existing posts are a backlog to migrate incrementally, not a blocking prerequisite.

Hashnode Deep Dive

Hashnode and Substack are not direct competitors despite both being “blogging platforms” — they serve fundamentally different use cases. Hashnode is a developer SEO platform with community discovery; Substack is a newsletter monetization platform with a blog view. Evaluating them on the same axis produces misleading comparisons.

Hashnode Pricing and Tiers

Hashnode’s revenue comes from team/enterprise plans, not from individual creators. The free tier is the product that attracts the paying teams.

PlanPriceKey Features
Free$0Custom domain (auto SSL + CDN), unlimited posts, built-in newsletter, AI writing (GPT-3.5), analytics, markdown editor, community feed distribution
Pro70/year)GPT-4 AI + vision, remove Hashnode branding, focused writing mode, Pro Discord channel, priority support, early access to features
Startup$199/month5 team members (+$10/seat), GitHub publishing, real-time collaboration, inline review comments, unlimited version history, AI search
EnterpriseCustomUnlimited members, headless mode, SSO, audit logs, SLA, content migration assistance, premium support
  • Pro is cosmetic for most individual bloggers — the meaningful differentiators are GPT-4 (vs GPT-3.5 on free) and removing Hashnode branding. The core publishing, custom domain, newsletter, and community features are all free.
  • Headless mode is enterprise-only — individual bloggers cannot use the headless CMS starter kit (Next.js + Tailwind + GraphQL) on the free tier, though the GraphQL API itself is accessible for automated publishing.
  • Open source projects get free Startup tier — a meaningful benefit for project documentation blogs.

Hashnode Monetization for Creators

Hashnode has no paid subscription infrastructure. This is the single largest gap vs Substack and Ghost for anyone planning to earn from their writing.

  • Hashnode Sponsors (beta) is the only native monetization feature — a tipping/micropayment system where readers send money directly to creators. Hashnode takes 0% commission. The feature has been in beta since launch with no announced timeline for graduation.
  • No paywall capability — Hashnode explicitly states “we will never hide content behind a paywall.” This is a philosophical position, not a missing feature.
  • No paid newsletter tiers — unlike Substack (paid/free tiers) or Ghost (membership tiers with Stripe), Hashnode newsletters are free-only.
  • Indirect monetization paths — creators can place their own sponsorship deals, affiliate links, or CTAs on their custom domain since they control the layout. This is manual work, not platform-assisted.
Monetization FeatureSubstackGhostHashnode
Paid subscriptionsYes (10% + Stripe)Yes (0% + Stripe)No
PaywallYesYesNo (philosophical rejection)
Newsletter tiers (free/paid)YesYesFree only
Tipping / reader supportNoNoYes (Sponsors beta, 0% cut)
Platform revenue cut10% of subscriptions0%0% (no subscriptions to cut)
Ad placementNoSelf-managedSelf-managed on custom domain

Hashnode is not a monetization platform

If earning revenue from writing is a current or future goal, Hashnode cannot serve that need. The Sponsors beta is a tipping feature, not a subscription business. Any comparison with Substack on monetization is a category error — Substack’s entire business model is built around enabling creator revenue, while Hashnode’s is built around enabling developer SEO ownership.

Hashnode Newsletter Capabilities

Hashnode includes a built-in newsletter, but it is significantly more basic than Substack’s or Ghost’s newsletter infrastructure.

  • Double opt-in subscription — readers subscribe via forms on blog posts and the homepage. Hashnode sends a verification email before activating.
  • Emails sent from hashnode domain — emails originate from hashnode-username@mail.hashnode.blog, not from the creator’s custom domain. This limits brand consistency.
  • Basic analytics — open rates and click rates are tracked per send. Subscriber list shows confirmed/pending status.
  • No segmentation — unlike Substack (free/paid tiers) or Ghost (segments, tags, custom audiences), Hashnode sends to all subscribers or none.
  • No automation — no drip sequences, welcome emails, or scheduled email campaigns.
  • Import from other platforms — CSV import supports subscribers from Substack, Medium, Revue, and Ghost. File must be under 10MB with a single column of email addresses.
  • One-click unsubscribe — every email includes an unsubscribe link. Hashnode maintains an automatic suppression list for spam reports.

Hashnode Content Export and Portability

Hashnode’s export is more limited than the marketing (“you own your content”) suggests. A complete backup requires community-built tools.

  • JSON export — available from dashboard settings. Contains post content in markdown, but images are CDN URLs (not actual files) and tags/series are referenced by ID (not name).
  • GitHub backup — syncs published posts to a GitHub repo in markdown format. Drafts are not included. File naming and metadata are inconsistent. Only published articles sync.
  • Image CDN dependency — all images uploaded to Hashnode are stored on Hashnode’s CDN (cdn.hashnode.com). The export provides URLs, not files. If Hashnode’s CDN goes down, all images in exported content break.
  • Community workarounds — the Better-Hashnode-Backups tool downloads images from the CDN and retrieves tag/series names via the API. The hashnode-export-to-markdown tool converts JSON exports to individual markdown files with frontmatter and downloads cover images.
  • Custom domain SEO is portable — since all links point to your CNAME’d domain, SEO equity stays with you if you migrate. This is the strongest portability feature Hashnode offers.

Hashnode API and Automated Publishing

Hashnode’s GraphQL API enables an Obsidian-to-Hashnode automated publishing pipeline, though with some friction.

  • GraphQL endpoint at https://gql.hashnode.com — authenticated via API token from the dashboard.
  • Two-step publish flowcreateDraft mutation first, then publishDraft mutation. Direct publishing is not supported.
  • Tag format gotcha — tags must be objects with name and slug fields, not strings. Passing strings is silently ignored (no error, just no tags on the published post).
  • Publication ID required — each mutation requires the publication’s internal ID (not the username or slug). Must be retrieved from the dashboard or via a separate GraphQL query.
  • Webhook support — publish/update events can trigger webhooks, enabling CI/CD integration.
  • Headless CMS mode — GraphQL APIs power the headless starter kit (Next.js + Tailwind). Content authored in Hashnode’s dashboard, served from a custom frontend. Enterprise-tier feature for full headless mode.

Hashnode Community and Discovery

Hashnode’s discovery mechanism is simpler and smaller than Substack’s but more developer-focused.

  • 2.3 million developers in the community, with 60,000+ active blogs. Smaller than Dev.to (7.7M monthly visits) but more technically focused per topic.
  • Score-based ranking (not ML) — articles scored by likes, views, comments, freshness, and follow relationships. No personalization model; feeds are precomputed for active users and stored in Redis.
  • Tag-driven discovery — posts are discoverable through topic tags on the Hashnode homepage feed. Trending tags widget shows weekly popular topics. Trending bloggers sidebar highlights top 30-day performers.
  • No recommendation algorithm comparable to Substack — Substack’s recommendation engine drives 90%+ of new subscriber growth for early-stage publications. Hashnode has no equivalent mechanism. Discovery is passive (feed browsing) rather than active (algorithmic push).
  • Code-first audience — technical posts with code snippets and diagrams achieve 2x higher engagement than text-only posts. The audience expects practical, implementation-focused content.

Hashnode vs Substack Direct Comparison

The platforms compete on different dimensions. The comparison is only meaningful when framed against specific user goals.

DimensionHashnode WinsSubstack Wins
SEO ownershipYour domain (free)Substack’s domain (custom domain $50, still shared authority)
Developer audienceBuilt-in 2.3M dev communityGeneral audience, not developer-specific
MonetizationPaid subscriptions, founding member tiers, built-in payment infrastructure
NewsletterBasic (included free)Sophisticated (paid tiers, recommendation-driven growth)
Content exportMarkdown (but images CDN-only)HTML (but images CDN-only, similar gap)
Social graph / discoveryPassive (feed + tags)Active (recommendations drive 90%+ growth)
CostFree for all core featuresFree to publish, 10-13% on revenue
API / automationGraphQL API, webhooksLimited (no official API for publishing)
Custom brandingFull (custom domain, $7/mo to remove Hashnode badge)Limited (Substack branding throughout)
Lock-inLow (SEO on your domain)High (social graph, recommendation network)
  • Hashnode wins when: the goal is a free developer blog with SEO ownership, no monetization needed, and API-driven publishing from Obsidian.
  • Substack wins when: the goal is audience growth through algorithmic recommendations, paid subscriptions, and a newsletter business.
  • Neither wins when: the goal is full content ownership with monetization — Ghost is strictly better on both dimensions.

Hashnode Platform Sustainability Risk

The GreenFlux analysis documents a concerning pattern of communication gaps that should factor into platform selection.

  • Communication blackout (2024-2025) — no LinkedIn or X posts since January 2025. No changelog updates from November 2024 until the February 2026 redesign. Support forum posts going 30+ days without response.
  • February 2026 redesign — Hashnode shipped a ground-up rebuild with new design, streaming server components, AI spam filtering, and performance improvements (homepage loads under 1 second). This suggests active development resumed, but the blackout period is a data point about operational consistency.
  • Business model dependency — Hashnode’s free individual tier is subsidized by Startup (830K (INR 6.28 Cr) as of March 2025. Series A funding of $6.7M was raised, but burn rate relative to revenue is unknown.
  • Mitigation — the custom domain CNAME model means SEO equity is portable. Regular GitHub backups (even incomplete) combined with community backup tools provide a reasonable exit path. The risk is not data loss but disruption — if Hashnode’s free tier degrades or disappears, migration effort is non-trivial.

Hashnode Headless CMS Mode

Hashnode’s headless CMS is designed for companies using Hashnode as a content backend while building their own frontend, and is largely irrelevant for individual blogger use cases.

  • How it works — content authored in Hashnode’s dashboard, served via GraphQL APIs to a custom frontend (Next.js starter kit provided). The blog lives at your domain served by your infrastructure, not Hashnode’s CDN.
  • Starter kit — Next.js + Tailwind CSS with three themes. Deploys to Vercel, Cloudflare Workers, or any hosting. Supports subpath configuration (e.g., yoursite.com/blog).
  • Enterprise-tier feature — full headless mode with SSO and advanced customization requires Enterprise pricing. The GraphQL API itself is accessible on all plans for basic operations.
  • Comparison to Ghost headless — Ghost is fully self-hostable and open-source; its Content API serves any frontend. Hashnode’s headless mode still depends on Hashnode’s infrastructure for content management. Ghost headless is the stronger choice for anyone who wants zero platform dependency.

Managed Ghost Deep Dive

Ghost is an open-source publishing platform structured as an independent nonprofit, making it the only major blogging/newsletter platform whose incentives are structurally aligned with creators rather than investors. This section covers Ghost(Pro) managed hosting specifically — pricing, monetization, newsletters, themes, API, migration, and the managed vs. self-hosted tradeoff. For the user’s context, separate content-and-monetization-strategy research concluded that Cloudflare Pages + Quartz is the better fit for a zero-cost approach, but Ghost remains the strongest option if the publishing model shifts toward newsletters or paid content.

Ghost(Pro) Pricing and Tiers

Ghost(Pro) underwent a significant pricing restructure in July 2025 that moved paid memberships and custom themes out of the cheapest tier. The practical effect is that $29/month (Publisher) is the real starting price for anyone who wants to monetize or customize their site.

FeatureStarter ($15/mo annual)Publisher ($29/mo annual)Business ($199/mo annual)Custom
Staff users1315Unlimited
Base members1,0001,000 (scales to 100K)10,000 (scales to 100K)Unlimited
Paid membershipsNoYesYesYes
Custom themesNo (Casper only)YesYesYes
Newsletters1310Unlimited
Premium tiersN/A310Unlimited
Special offersN/A1050Unlimited
Integrations (Zapier, API)NoYes (8,000+)YesYes
Advanced analyticsNoYesYesYes
Custom sending domainNoYesYesYes
ActivityPub social webYesYesYesYes
Priority supportNoNoYesYes
  • Starter is a newsletter-only entry point — locked to the default Casper theme, one staff account, no paid memberships, no integrations, no API access. Adequate for testing Ghost or running a free newsletter blog.
  • Publisher is the real starting tier — unlocks paid subscriptions, custom themes, Zapier/API integrations, advanced analytics, and custom sending domain. Scales by member count: 63/month at 5,000, 274/month at 100,000.
  • Business is for teams — 15 staff accounts, priority support, early feature access, higher limits on premium tiers and newsletters. Same member scaling as Publisher.
  • 14-day free trial on all plans with full dashboard access, no credit card required.

Starter plan is not what it used to be

Before July 2025, Ghost’s cheapest plan ($9/month) included paid memberships and custom themes. The restructure nearly doubled the price while removing the two features most creators need. Anyone evaluating Ghost based on pre-2025 reviews will encounter outdated pricing and feature information.

Ghost Membership and Monetization

Ghost’s monetization model is the inverse of Substack’s: Ghost takes 0% of subscription revenue, charging only the flat monthly hosting fee. This makes Ghost dramatically cheaper at scale and structurally aligns the platform with creator success rather than revenue extraction.

  • 0% platform fee — Ghost takes no cut of subscription revenue. Only Stripe’s processing fee (~2.9% + 3,000/month in subscriber revenue, Ghost costs 300+ (10% platform + Stripe).
  • Four content access levels — public (visible to all, SEO-indexed), free members (email-gated), paid members (all paying subscribers), and specific tiers (granular per-tier gating).
  • In-post paywall dividers — a single post can mix public preview content with gated content below a divider. The public portion gets indexed by search engines, creating natural conversion points.
  • Multiple membership tiers — Publisher supports up to 3 premium tiers with independent monthly/annual pricing, custom names, descriptions, and content permissions. Business supports up to 10.
  • Offers and discounts — percentage or fixed-amount discounts, trial periods, expiration dates, and redemption limits configurable without touching Stripe’s dashboard.
  • Portal signup widget — customizable popup for member signup/login. Passwordless authentication via email magic links (JWT-based).
  • Stripe-only limitation — Stripe is the only supported payment processor. No PayPal, no alternative gateways. This blocks monetization in countries where Stripe is not available (~100+ countries supported, but not universal).
  • 135 currencies supported via Stripe, with all international payment methods Stripe offers. beehiiv is USD/credit-card only by comparison.
Revenue MetricGhostSubstackbeehiiv
Platform fee0%10%0% (paid plans from $43/mo)
Payment processingStripe ~2.9% + $0.30Stripe ~2.9% + $0.30 + 0.7% billingStripe (via beehiiv, less transparent)
Effective rate at $3K/mo revenue~29 hosting = $116~$420 (Substack + Stripe)~43 plan = $130
Effective rate at $10K/mo revenue~88 hosting = $378~$1,370 (Substack + Stripe)~43 plan = $333
Currency support135 currencies135 currenciesUSD only
Payment methodsAll Stripe methodsAll Stripe methodsCredit card only

Ghost Newsletter System

Ghost’s newsletter system is built into the publishing workflow — every post can be simultaneously published to the web and emailed to subscribers. The system is adequate for most publishers but lacks the advanced automation and growth tools of dedicated newsletter platforms.

  • Publish-to-email workflow — the editor has a toggle to send any post as an email newsletter to selected segments. No separate email composer needed.
  • Unlimited sends on all Ghost(Pro) tiers — no per-email charges, no send limits. This is a significant advantage over self-hosted Ghost, which requires a separate email service.
  • Segmentation (Publisher+) — send to all subscribers, free only, paid only, or specific membership tiers. No tag-based or behavioral segmentation.
  • Custom sending domain (Publisher+) — emails sent from your domain rather than Ghost’s, improving brand consistency and deliverability.
  • Analytics — open rates, click rates, and subscriber engagement per send. Ghost v6 added native web analytics (Tinybird-powered, cookie-free, privacy-first). Overall analytics remain basic compared to beehiiv’s newsletter-specific metrics.
  • No automation — no drip sequences, welcome email series, or triggered email campaigns. Ghost sends one-off newsletters per post. For automation, Ghost requires integration with an external tool via webhooks.
  • No A/B testing — cannot test subject lines or send times.
  • No referral program — unlike beehiiv’s built-in referral system, Ghost has no native subscriber referral mechanism.
Newsletter FeatureGhostSubstackbeehiiv
Unlimited sendsYes (all tiers)YesTiered limits
Custom sending domainPublisher+NoScale+ ($86/mo)
SegmentationBasic (tier-based)Basic (free/paid)Advanced (behavioral, tag-based)
Automation/dripNoNoYes
A/B testingNoNoYes
Referral programNoNoYes
Publish-to-web + emailYes (simultaneous)YesYes
Analytics depthBasic (opens, clicks)Basic (opens)Advanced (engagement scoring)
Deliverability infrastructureGhost-managedSubstack-managedIn-house, dedicated IPs on higher tiers

Ghost Theme Ecosystem

Ghost’s theme ecosystem is smaller than WordPress’s but curated and consistently high-quality. The constraint is that Starter tier users cannot upload custom themes at all.

  • 21 free themes in the official marketplace — Casper (default), Source, Solo, Headline, Edition, Alto, Edge, Dawn, and others. These cover blog, magazine, newsletter, and portfolio layouts.
  • ~179 paid themes ranging from 149. Budget themes (129-149) come from established Ghost theme developers.
  • Handlebars templating — Ghost themes use Handlebars (a logic-less templating language) with HTML/CSS/JS. Simpler than WordPress PHP theme development but still requires web development skills for custom themes.
  • Starter theme repository — Ghost provides a GitHub starter theme with Rollup and PostCSS build tools, gscan compatibility testing, and GitHub Actions for automated deployment.
  • gscan validation — Ghost’s theme compatibility checker prevents breaking changes during upgrades by validating themes against the current Ghost version’s API.
  • No drag-and-drop builder — unlike WordPress (Elementor, Gutenberg blocks), Ghost has no visual page builder. Layout customization requires editing theme files.

Ghost API and Headless CMS

Ghost’s API architecture makes it one of the most capable headless CMS options that also includes built-in newsletters and memberships — a combination no dedicated headless CMS (Contentful, Sanity, Strapi) offers.

  • Content API (read-only) — delivers published content as JSON. Key-based authentication. Fully cacheable. Endpoints for posts, pages, tags, authors, site settings, membership tiers, and newsletters. Available on all plans.
  • Admin API (read-write, Publisher+) — JWT-based authentication. Create/update/delete posts, pages, tags, authors, images, and members. Enables automated publishing pipelines.
  • JavaScript SDK@tryghost/content-api works in any JavaScript environment (Node, browser, edge workers). Official package maintained by Ghost.
  • Webhooks — trigger HTTP endpoints on content changes (post published, member signup, etc.). Enables static site rebuilds, Slack notifications, CRM sync.
  • Custom integrations — each integration gets its own Content API + Admin API key pair. No shared credentials needed.
  • Headless frontend frameworks — proven with Next.js, Astro, Nuxt, Gatsby. Ghost provides the editor, content management, member management, and newsletter sending while the frontend is fully custom.
  • Fixed content model — Ghost’s data model is posts, pages, tags, and authors. No custom content types, custom fields, or flexible schemas. For complex content modeling, dedicated headless CMS platforms (Sanity, Strapi) are more appropriate.
Headless FeatureGhostContentfulSanityStrapi
Built-in newslettersYesNoNoNo
Built-in membershipsYesNoNoNo
Self-hostableYesNoPartialYes
Custom content typesNoYesYesYes
REST APIYesYesYes (GROQ/GraphQL)Yes
Price (comparable tier)$29/mo (Publisher)$300/mo (Team)$99/mo (Growth)Free (self-hosted)

Migration To and From Ghost

Ghost has the most comprehensive built-in migration tooling of any publishing platform, with dedicated importers for the five most common source platforms.

  • Built-in migrators for Substack, WordPress, Medium, Squarespace, and Mailchimp. Accessible from Settings > Advanced > Import/Export in Ghost Admin.
  • Substack migration preserves Stripe continuity — if you use the same Stripe account that was connected to Substack, paid subscriber billing continues without interruption. Subscribers are imported via CSV (free) and CSV (paid) separately.
  • Substack URL structure mismatch — Substack uses /p/post-slug while Ghost reserves /p/ for previews. Redirect rules are needed to preserve inbound links and SEO. Ghost’s migration team assists with this on annual plans.
  • WordPress migration — imports posts, pages, tags, and authors. Requires the WordPress JSON export file. Images are re-hosted on Ghost’s CDN.
  • Markdown import — Ghost’s native editor supports markdown, but bulk markdown import requires the Admin API or manual copy-paste. No built-in “drop a folder of .md files” importer.
  • Export from Ghost — full JSON export of all content plus CSV of all members with Stripe customer IDs. Images hosted on Ghost’s CDN. This is meaningfully more complete than Substack’s or Hashnode’s exports.
  • Ghost(Pro) migration assistance — annual plan subscribers get free migration services from Ghost’s team, covering content, subscribers, subscriptions, and payment continuity.
Migration PathDifficultyToolWhat TransfersWhat Doesn’t
Substack to GhostEasyBuilt-in migratorPosts, images, free/paid subscribers, Stripe continuityNotes followers, recommendation network, /p/ URLs (need redirects)
WordPress to GhostEasyBuilt-in migratorPosts, pages, tags, authors, imagesPlugins, widgets, custom post types, comments
Medium to GhostEasyBuilt-in migratorPosts, imagesFollowers, stats, claps
Markdown files to GhostModerateAdmin APIPost contentRequires scripting for bulk import
Ghost to anywhereEasyJSON + CSV exportAll content, all members with Stripe IDs, images (CDN URLs)Theme, custom integrations

Managed vs Self-Hosted Cost Comparison

Ghost(Pro) is more expensive at the sticker price but includes services that self-hosted users must purchase separately. The total cost of ownership gap is narrower than it appears, and for most creators the time savings justify managed hosting.

  • Ghost(Pro) Publisher — $29/month (annual) includes email delivery, CDN, backups, SSL, analytics, security, and updates. No additional services needed.
  • Self-hosted base cost — $5-20/month for a VPS (DigitalOcean, Hetzner) with 1GB+ RAM, Ubuntu 24, Node.js 22, MySQL 8, NGINX.
  • Self-hosted email delivery — $15-35/month for Mailgun or SendGrid. Ghost does not send emails natively on self-hosted installations.
  • Self-hosted CDN — Cloudflare free tier covers basic CDN, but Ghost(Pro) includes Fastly CDN with WAF and DDoS protection ($20+/month equivalent).
  • Self-hosted backups — manual responsibility. Automated backup scripts or services add ~$5/month.
  • Self-hosted ActivityPub — v6’s social web features are available but with limits: 2,000 followers/following and 100 interactions per day for self-hosted instances.
  • Maintenance time — self-hosted requires manual Ghost updates, Node.js/MySQL updates, security patching, and backup verification. Ghost(Pro) handles all of this automatically.
Cost ComponentGhost(Pro) PublisherSelf-Hosted (Proxmox/VPS)
HostingIncluded ($29/mo)0 (existing home server)
Email deliveryIncluded$15-35/mo (Mailgun/SendGrid)
CDN + WAFIncluded (Fastly)20/mo
BackupsIncluded (weekly)$0-5/mo
SSLIncluded (auto)$0 (Let’s Encrypt)
AnalyticsIncluded (Tinybird)$0-10/mo (Plausible/Umami)
Maintenance timeZero1-2 hrs/month
Total (12 months)$348/year$240-744/year + time

For a homelab context, self-hosting Ghost in Docker on an existing hypervisor behind a reverse proxy eliminates the VPS cost but still requires Mailgun (348/year is comparable to self-hosted-with-Mailgun at ~$180/year plus maintenance time.

Ghost’s Position in 2026

Ghost has strengthened its market position through three developments: the nonprofit structure providing long-term alignment with creators, ActivityPub federation opening a new distribution channel, and native analytics reducing dependency on third-party tools.

  • Nonprofit structure — Ghost is an independent nonprofit, not VC-backed. No growth-at-all-costs incentive, no enshittification pressure. Revenue comes from Ghost(Pro) hosting, aligning the company’s success with the quality of the managed service rather than data extraction or feature gating.
  • Ghost v6.0 (August 2025) — major release adding ActivityPub/fediverse integration, native Tinybird-powered analytics (cookie-free, privacy-first), Docker Compose as the recommended deployment, and Bluesky bridging. AMP templates deprecated.
  • ActivityPub federation — Ghost sites can follow, like, and interact with users on Mastodon, Threads, Flipboard, Buttondown, WriteFreely, Tumblr, WordPress, PeerTube, and Pixelfed. Ghost publishers also get a “Notes” feature for short-form posts to the fediverse. This is unique among newsletter/blog platforms — neither Substack nor beehiiv have fediverse integration.
  • Over 100,000 websites built with Ghost. The ecosystem includes an active theme marketplace, growing agency support, and a developer community contributing to the open-source core.
  • Technology stack — Node.js, MySQL (production) or SQLite (development), Handlebars theming, REST APIs, Bookshelf.js ORM. Docker Compose is now the recommended self-hosted deployment.
  • Community health — active GitHub repository (TryGhost/Ghost), regular releases, responsive forum. Unlike Hashnode’s communication blackout pattern, Ghost maintains consistent public development cadence.

Diagram

graph TD
    subgraph Effort["Effort Spectrum"]
        direction LR
        LOW["LOW EFFORT"]
        HIGH["HIGH EFFORT"]
    end

    subgraph Platforms["Platform Options"]
        SUB["Substack<br/>Zero setup<br/>13% revenue share<br/>High social lock-in"]
        HN["Hashnode<br/>Zero setup + DNS<br/>No monetization<br/>Your SEO, low lock-in"]
        GM["Ghost Managed<br/>30 min setup, $15/mo<br/>0% revenue share<br/>No lock-in"]
        QDG["Quartz / Digital Garden<br/>1-3 hr setup, free<br/>Publishes from Obsidian vault<br/>No lock-in"]
        GS["Ghost Self-Hosted<br/>2-4 hr setup<br/>Full control on Proxmox<br/>No lock-in"]
        HUGO["Hugo + Cloudflare<br/>4-8 hr setup<br/>Maximum flexibility<br/>No lock-in"]
    end

    subgraph Workflow["AI Writing Workflow"]
        PROMPT["User provides<br/>topic prompt"]
        DRAFT["Claude drafts<br/>matching voice"]
        ITERATE["User iterates<br/>adds experience"]
        PUBLISH["Publish to<br/>chosen platform"]
    end

    LOW -.-> SUB
    LOW -.-> HN
    LOW -.-> GM
    LOW -.-> QDG
    HIGH -.-> GS
    HIGH -.-> HUGO

    PROMPT --> DRAFT --> ITERATE --> PUBLISH
    PUBLISH --> SUB
    PUBLISH --> HN
    PUBLISH --> GM
    PUBLISH --> QDG
    PUBLISH --> GS
    PUBLISH --> HUGO

    style SUB fill:#ff6b6b,color:#fff
    style HN fill:#20b2aa,color:#fff
    style GM fill:#4a9eff,color:#fff
    style QDG fill:#4a9eff,color:#fff
    style GS fill:#738a94,color:#fff
    style HUGO fill:#738a94,color:#fff
    style PROMPT fill:#f7b731,color:#333
    style DRAFT fill:#f7b731,color:#333
    style ITERATE fill:#f7b731,color:#333
    style PUBLISH fill:#f7b731,color:#333

Sources

Accepted

SourceTierWhy Credible
Citation Needed: Substack to self-hosted Ghost migration (retrieved: 2026-04-05)HighMolly White is an established technology critic; first-hand detailed migration account with specific technical findings
Pettauer: The Substack Phenomenon — Creator’s Guide 2026 (retrieved: 2026-04-05)MediumRitchie Pettauer is an Associate Lecturer at University of Vienna; comprehensive analysis with cited sources
Ghost Developer Docs: Migrating from Substack (retrieved: 2026-04-05)HighOfficial Ghost documentation; primary source for migration process
Hobo Web: Google Helpful Content Update Relevance in 2026 (retrieved: 2026-04-05)MediumEstablished SEO consultancy with 20+ years of track record; detailed technical analysis of Google ranking factors
EmailToolTester: 11 Best Substack Alternatives 2026 (retrieved: 2026-04-05)MediumEstablished email tool review site with editorial standards; detailed pricing and feature comparisons
beehiiv: Substack vs Ghost (retrieved: 2026-04-05)Mediumbeehiiv is a direct competitor (bias noted) but provides specific, verifiable pricing and feature data
Blockchain Council: Claude AI for Blog Writing (retrieved: 2026-04-05)MediumProfessional education organization; practical workflow guide with specific prompt strategies
eesel AI: AI Blogging Tools Review (retrieved: 2026-04-05)MediumHands-on testing of 11 tools with specific findings; author Stevia Putri provides documented methodology
How-To Geek: WordPress vs Ghost vs GitHub Pages (retrieved: 2026-04-01)MediumEstablished tech publication with editorial standards
CloudCannon: Top 5 SSGs for 2025 (retrieved: 2026-04-01)MediumSSG-focused CMS company; detailed technical comparison
Quartz 4 Official Documentation (retrieved: 2026-04-01)HighOfficial project documentation
Digital Garden Plugin Documentation (retrieved: 2026-04-01)HighOfficial plugin documentation
Ghost Review 2026 (UseReviews.io) (retrieved: 2026-04-01)MediumStructured review with specific pricing data and feature scoring
Cross-Posting Technical Content Guide (retrieved: 2026-04-01)MediumRecent guide with specific duplication study data
Medium vs Substack Comparison (retrieved: 2026-04-01)MediumDetailed comparison with specific data points (DA scores, earnings percentages)
BlogBowl: Hashnode vs Dev.to (retrieved: 2026-04-01, prior: 2026-04-01)MediumComparative analysis with engagement and traffic data; re-fetched for Hashnode deep dive with community size and newsletter details
David A. Kennedy: Minimum Viable Blogging (retrieved: 2026-04-05)MediumPractitioner with SSG and CMS experience; thoughtful framework for essential blog features
Hashnode Pricing Page (retrieved: 2026-04-06)HighOfficial Hashnode pricing; primary source for tier features and costs
Hashnode Docs: Newsletters (retrieved: 2026-04-06)HighOfficial Hashnode documentation; primary source for newsletter feature details, subscriber management, and import capabilities
Hashnode Docs: Headless CMS (retrieved: 2026-04-06)HighOfficial Hashnode documentation; primary source for headless CMS architecture and deployment options
Hashnode Changelog: February 2026 Redesign (retrieved: 2026-04-06)HighOfficial Hashnode changelog; primary source for recent platform changes, new features, and performance improvements
Hashnode Changelog: AI Free for All Users (retrieved: 2026-04-06)HighOfficial Hashnode changelog; primary source for AI feature tier changes (GPT-3.5 free, GPT-4 Pro)
dev.to: Automating Hashnode with GraphQL (retrieved: 2026-04-06)MediumFirst-hand developer experience with Hashnode API; documents specific gotchas (tag format, publication ID) with code examples
GreenFlux: It Might Be Time To Migrate Your Hashnode Blog (retrieved: 2026-04-06)MediumDeveloper with direct migration experience; documents communication blackout, support gaps, and export limitations with specific dates
Wisp CMS: Hashnode vs Substack (retrieved: 2026-04-06)MediumCMS comparison site (competitor bias noted); provides structured feature-by-feature comparison with specific pricing data
System Design Newsletter: How Hashnode Generates Feed at Scale (retrieved: 2026-04-06)HighTechnical deep dive into Hashnode’s feed architecture; specific data on 2.3M users, Redis caching strategy, event-driven architecture, and ranking algorithm
freeCodeCamp: Launch Your Developer Blog on Hashnode (retrieved: 2026-04-06)HighfreeCodeCamp is an established developer education platform; detailed custom domain setup walkthrough with CNAME configuration specifics
Better-Hashnode-Backups (GitHub) (retrieved: 2026-04-06)MediumCommunity-built backup tool; documents CDN image dependency and provides workaround for incomplete exports
Ghost(Pro) Official Pricing Page (retrieved: 2026-04-06)HighOfficial Ghost pricing; primary source for tier features, member limits, and plan comparison
Sender.net: Ghost Pricing Plans, Costs & What You’ll Actually Pay in 2026 (retrieved: 2026-04-06)MediumEstablished email marketing platform; detailed pricing analysis with scaling costs and feature comparisons across tiers
Luxe Themes: Ghost Pricing Guide — Every Plan Explained (retrieved: 2026-04-06)MediumGhost theme developer with direct platform experience; documents July 2025 Starter tier changes and feature comparison per plan
Luxe Themes: Using Ghost as a Headless CMS (retrieved: 2026-04-06)MediumGhost theme developer; detailed Content API and Admin API guide with frontend framework integration patterns
Ghost Architecture Documentation (retrieved: 2026-04-06)HighOfficial Ghost developer documentation; primary source for API architecture, database requirements, and technology stack
Ghost Hosting Documentation (retrieved: 2026-04-06)HighOfficial Ghost documentation; primary source for self-hosted requirements and managed vs self-hosted comparison
Ghost Migration: Substack Documentation (retrieved: 2026-04-06)HighOfficial Ghost migration docs; step-by-step Substack migration with Stripe continuity details
Ghost + Stripe Integration (retrieved: 2026-04-06)HighOfficial Ghost integration page; primary source for membership monetization and Stripe setup
Ghost Marketplace / Themes (retrieved: 2026-04-06)HighOfficial Ghost theme marketplace; primary source for theme counts, pricing, and categories
Ghost vs beehiiv Comparison (retrieved: 2026-04-06)MediumGhost’s own comparison page (bias noted toward Ghost); useful for specific feature claims about currency support and nonprofit structure — verified against independent sources
Ghost ActivityPub Development Blog (retrieved: 2026-04-06)HighOfficial Ghost ActivityPub project; primary source for federation capabilities, supported platforms, and feature roadmap
TechCrunch: Substack rival Ghost is now connected to the fediverse (retrieved: 2026-04-06)HighEstablished technology news outlet; independent coverage of Ghost’s ActivityPub launch
Noise Amplifier: Ghost V6 Review — Built-In Analytics and ActivityPub (retrieved: 2026-04-06)MediumIndependent publisher review with hands-on v6 experience; documents ActivityPub status, Tinybird analytics, and Docker changes
Dev.to: Ghost 6 IS Really Something Else (retrieved: 2026-04-06)MediumDeveloper practitioner review; documents v6 feature changes, Docker Compose adoption, and ActivityPub assessment
Abstract27: 7 Essential Ghost CMS Features for Content Monetisation (retrieved: 2026-04-06)MediumAgency with Ghost development experience; detailed content gating and membership tier configuration walkthrough
ElectronThemes: Ghost Pro vs Ghost Self-Hosted Comparison (retrieved: 2026-04-06)MediumGhost theme development agency; detailed cost comparison with specific pricing for add-on services needed when self-hosting
Ghost Help: Importing Content to Ghost (retrieved: 2026-04-06)HighOfficial Ghost help documentation; lists supported migration platforms and links to detailed guides

Rejected

SourceWhy Rejected
LeadAdvisors: 17 Best Blogging PlatformsSEO content farm; thin aggregation without original analysis
TestMuAI: 21 Top SSGsRebranded LambdaTest content; listicle without technical depth
Naturaily: Best SSGs ComparedAgency marketing content; lacks specifics or original research
GeeksforGeeks: Top 7 SSGsContent farm pattern; thin descriptions without comparative analysis
ComeUp: Top Blogging Platforms 2026Freelance marketplace content; no editorial standards
escapethecubicle: Substack Changed EverythingSelf-promotional Substack post about Substack; circular credibility
ditchthetemplates: Great Substack Shift 2026Self-promotional Substack post about Substack; circular credibility
mean.ceo: Minimum Viable BlogStartup marketing content; focuses on business blogging, not personal/technical
blackpugstudio: Starting a Blog in 2026Unknown publisher; generic overview without depth
TechHub IT: How to Start a Tech BlogUnknown publisher; basic listicle without original analysis
AIOSEO: 7 Best AI Blog Post GeneratorsAffiliate content from an SEO plugin company; commercial bias
InfiniteJS: Blogging Platform ComparisonUnknown publisher; thin comparison without data
ProPicked: Hashnode Pricing 2026SEO aggregation site; returned 403 on fetch, no original analysis visible
SaaSWorthy: Hashnode Features & PricingReview aggregator; thin feature listing without original research or verification
ToolQuestor: HashnodeUnknown publisher; generic feature description without original analysis
SolomonSignal: Hashnode for EnterpriseUnknown publisher; marketing-style content without verifiable claims
Slashdot: Compare Hashnode vs SubstackAuto-generated comparison page; no editorial analysis
Superblog: Best Blogging Platform 2026Direct competitor (Superblog); commercial bias in platform ranking
PopularAITools: Hashnode ReviewAI tool aggregator; thin listing without original analysis
liana.one: Should You Use HashnodeIndividual blogger with relevant experience, but primarily documents import failures rather than systematic analysis; used as supplementary data point only
HostingSeekers: Best Ghost Hosting Providers 2026Hosting affiliate site; ranking influenced by affiliate partnerships rather than independent testing
Exalo Hosting: Best Hosting for Ghost 2026Hosting provider’s own blog; commercial self-interest in hosting recommendations
Purvaco: Top Ghost Hosting Providers 2026Unknown publisher; thin affiliate-style aggregation without original testing
Capterra: Ghost Software PricingReview aggregator; auto-generated feature listing without original analysis
G2: Ghost Pricing 2026Review aggregator; user-submitted data without editorial verification
Azeemsafi: Ghost CMS Review 2026Personal blog without stated expertise or methodology; SEO-optimized review pattern
2tonwaffle: Ghost Pro Pricing UpdatesCertificate expired; could not fetch content for verification
CreatorStackClub: Ghost Review 2026Certificate verification failed; could not fetch content
ghosthosting.fly.dev: Best Managed Hosting OptionsGhost hosting comparison by a hosting provider; commercial conflict of interest
Diggitymarketing: 7 Best Ghost Hosting 2026SEO/affiliate site; ranking driven by referral commissions

Revision History

DateScopeKey Changes
2026-04-01Initial research14 sources accepted, 10 rejected. Covers SSGs, managed platforms, self-hosted CMS, Obsidian pipelines, cross-posting, and Blogger migration.
2026-04-05Low-effort reframe, Substack lock-in deep dive, AI workflow, cross-posting ROI8 new sources accepted, 2 new rejected. Added Substack Lock-In Deep Dive, Platform Lock-In Comparison, Cross-Posting ROI for Low-Effort Blogs, AI-Assisted Blogging Workflow, Effort-to-Lock-In Tradeoff sections. UPDATED: cross-posting recommendation (was “strictly superior,” now “not worth it for low effort”). UPDATED: Substack lock-in (expanded from brief mention to full analysis of technical, social, algorithmic, and economic dimensions). UPDATED: platform comparison table (added effort and AI workflow columns). NEW: AI voice-matching workflow with Claude. NEW: Google E-E-A-T and AI content ranking analysis. Resolved open question on AI-generated content flooding and SEO impact. Updated blog post count from 124 to 90 (verified against vault).
2026-04-06Hashnode deep dive — monetization, pricing, newsletter, export, API, community, sustainability13 new sources accepted, 9 new rejected. NEW: Hashnode Deep Dive section with 8 subsections (Pricing/Tiers, Monetization, Newsletter, Export/Portability, API/Automation, Community/Discovery, vs Substack comparison, Platform Sustainability Risk, Headless CMS). UPDATED: Platform Lock-In Comparison table (expanded Hashnode row with export details, newsletter subscriber export, SSL/CDN specifics). UPDATED: Blogging Platform Comparison table (added Hashnode column). UPDATED: Effort-to-Lock-In Tradeoff (added Hashnode row and bullet). UPDATED: Managed Platforms section (expanded Hashnode entry with cross-reference to deep dive). CONFIRMED: Hashnode custom domain SEO ownership is genuine and portable. CONFIRMED: Markdown export exists but with significant gaps. NEW finding: Hashnode has no paid subscription capability (contradicts any assumption it competes with Substack on monetization). NEW finding: Communication blackout pattern (2024-2025) raises platform sustainability questions. NEW: 3 open questions about Hashnode sustainability and monetization.
2026-04-06Managed Ghost deep dive — pricing tiers, monetization, newsletter, themes, API, migration, managed vs self-hosted, 2026 position18 new sources accepted, 11 new rejected. NEW: Managed Ghost Deep Dive section with 8 subsections (Pricing/Tiers, Membership/Monetization, Newsletter System, Theme Ecosystem, API/Headless CMS, Migration, Managed vs Self-Hosted Cost Comparison, Position in 2026). UPDATED: Self-Hosted CMS Solutions (expanded with v6 details, email delivery requirement, corrected pricing). UPDATED: Effort-to-Lock-In Tradeoff (clarified Ghost managed pricing split between Starter and Publisher). UPDATED: Summary (added pricing restructure context). UPDATED: Recommendations (split Ghost recommendation into Starter vs Publisher guidance). Resolved open question on managed vs self-hosted cost comparison. NEW findings: July 2025 Starter tier feature removal, ActivityPub federation in v6, nonprofit structure, Stripe-only limitation, 21 free + 179 paid themes, built-in migration tools for 5 platforms. NEW: 4 open questions about ActivityPub maturity, newsletter deliverability, Starter vs Hashnode value, and API comparison.
2026-07-18Garden projection scrubPublished in place as a garden page (publish: true, stage: budding): rewrote 9 wikilink sites targeting unpublished notes as plain prose per the Content Model scrub checklist; no content-substance changes.