How it works Examples Docs Pricing Blog WP Blocks Install free

Blog /

Ghost, Substack, Hashnode, or WordPress for the blog on your vibe-coded site?

You vibe-coded the site. The blog is the part you have not picked yet.

Four real contenders sit in the “I will host my blog here” decision for a small site: Substack, Ghost, Hashnode, WordPress. There are others (Medium, Bear, Mataroa, Write.as) but those four are where most people actually land.

This is not the generic “blog CMS comparison” you have read fifty of. The only question that matters here is which one fits behind a vibe-coded homepage without fighting it.

What “fits” means in that context:

  • Posts at your own domain, not a vendor subdomain.
  • A theme that does not eat your design system.
  • An auth and identity story that does not duplicate the one on your site.
  • A path forward when the blog needs to be more than a blog (signups, gated content, a member area, a custom tool).

The four contenders, honestly

Substack

The audience-first option. Newsletter as the primary product; the public archive on the web is a side effect.

  • Free to start. Substack takes 10% of paid newsletter revenue if you ever turn paid on.
  • Custom domains exist. The editor, the URL structure, and the audience experience are Substack’s.
  • The author owns the email list and can export it. That is the real product they sell you on.
  • You cannot move the published URL structure cleanly. The Substack URL gravity is real.

Fits a vibe-coded site only if “blog” really means “newsletter that happens to have a public archive.” If you have a search-engine-driven content strategy, the lock-in shows up later.

Ghost

The opinionated-modern option. Membership and paid newsletters built in. Used by a lot of indie writers and B2B SaaS marketing teams.

  • Self-host (free, you manage the Node server) or Ghost Pro starting around $9/mo for a small site.
  • The headless API is real and well-documented. You can call it from any front-end.
  • The theme system is its own; non-trivial to migrate away from later.

Fits a vibe-coded site if you want a paid-newsletter business with one platform doing both the publishing and the membership, you accept another host (or Ghost Pro), and your audience already accepts Ghost-style URLs (or you build the member experience yourself against the API).

Hashnode

The dev-audience option. Strong for technical writing. Free with custom-domain support out of the box.

  • Hosted only. No self-host path.
  • Editor is good. Theming is limited compared to WordPress or Ghost.
  • Built-in dev-community surface area (newsletters, series, dev.to-style discovery).

Fits a vibe-coded site if your audience is developers, you do not need a deep theme story, and you accept the platform’s choices.

WordPress

The default. 40%+ of the web. Every host, every plugin, every editor your reader has already met.

  • Free to use; pay for hosting (often $5 to $15/mo).
  • Read and write API in core. Roles, capabilities, comments, RSS, sitemaps, scheduling, custom post types, full SEO plugin ecosystem.
  • Self-hosted by default, which means you own the data and the URL structure permanently.
  • The only one of the four that can also be the runtime for your vibe-coded site itself. The “blog vs site” decision collapses into one install. (See the pillar post.)

The comparison on eight axes

Substack Ghost Hashnode WordPress
Own your domain yes yes yes yes
Own your data partial (export available) yes self-host, partial Pro partial (export available) yes
Custom theming depth minimal moderate minimal unlimited
Self-hostable no yes no yes
Headless API limited yes yes yes
Can also host the front-end no no no yes (via DSGo Apps)
Price floor free, 10% of paid $9/mo Pro free free + hosting
Lock-in cost if you leave medium low self-host, medium Pro medium low (export to anything)

How to decide in plain English

  • Newsletter business with paid tiers; the blog archive is a byproduct. Substack. Take the lock-in tax because audience-ownership-without-a-list is a bigger tax somewhere else.
  • Membership content business, dev or founder readers, want one platform for publishing and memberships. Ghost.
  • Developer audience, do not want to run servers, want decent SEO and a free price floor. Hashnode.
  • Blog is one channel on a real business website you actually own. WordPress. Especially if the homepage is a vibe-coded interface you want to keep iterating on, because WordPress is the only one of the four that can also host that interface inside the same install.

Why “WordPress” is not the lazy answer here

The standard critique of WordPress is “the admin is ugly, the themes look dated, the plugin pile-on is real.” Each is true. None of them matters for the blog half of a vibe-coded site:

  1. Your reader never sees wp-admin. Only the editor does.
  2. The blog’s theme can be deliberately plain. The front-end of your site is the brand surface, not /blog.
  3. You do not need thirty plugins. You need an SEO plugin, a backup plugin, an anti-spam plugin, and the editor.

The argument for Substack, Ghost, or Hashnode over WordPress is usually “I do not want to deal with WordPress.” That is a real preference and a legitimate reason. The argument for WordPress in this specific scenario (vibe-coded front-end plus a blog) is that you avoid the second host, the second login, the second domain authority, and the second theme drift.

The “I do not want to deal with WordPress” tax shows up later, when you want a member area, gated content, an event registration, a custom calculator, or an AI content tool that uses the same provider your site already pays for. WordPress lets you keep building. The hosted blogs do not.

Worked examples

B2B SaaS founder, v0-built product site. Marketing pages: pricing, features, about, contact, blog. Wants the blog now. Audience is other founders.

  • Substack if the newsletter game is the goal and the list is the asset.
  • WordPress if product-content marketing is the goal and the blog is one of several growth surfaces.

Solo dev shipping in Astro and Claude Code. Wants to publish about the project. Audience is dev-curious.

  • Hashnode if they like the platform and want zero infrastructure.
  • WordPress if they have already committed to Astro and want one stack. Astro renders the marketing pages as a DSGo app; WordPress renders /blog under the same install. The pillar post walks the setup.

Coach with an existing audience and a Lovable site. Publishes weekly. Small list. Wants gated content eventually.

  • Ghost if they want one platform to handle membership.
  • WordPress if they want plugin flexibility (Memberful, Restrict Content Pro, MemberPress) and are willing to wire it themselves.

The honest tie-breaker in the last one is who is going to maintain it. Ghost takes maintenance off the list. WordPress puts it on.

The thing nobody says out loud

The most useful thing about picking a blog CMS for a vibe-coded site is realizing the question is not really Substack vs Ghost vs Hashnode vs WordPress.

It is: do I want my blog to be its own product, or part of my actual website?

Substack, Ghost, and Hashnode are different versions of “my blog is the product.” They are designed to be the primary surface, the place the reader goes, the brand. The website is sometimes an afterthought to the publication.

WordPress is the only one of the four that lets the blog be part of the site without becoming the site. Especially when the site itself is a vibe-coded thing you want to keep iterating on without renegotiating a CMS.

Pick the one whose lock-in you are willing to live with.

Related reading