Why I built xVoid even though Snipcart already existed

Snipcart was the first thing the Ghost docs pointed me at. Two script tags and a buy button, and you have a cart. So why did I build something else.

Snipcart was the first thing the Ghost docs pointed me at. Two script tags, sprinkle some data-item-* attributes on your buttons, and you've got a shopping cart. It's been around for years, it works, and it's sitting on the official Ghost integrations page. So why did I build something else.

Here's the honest answer.

What Snipcart actually is

Snipcart is a JavaScript shopping cart you bolt onto any HTML page. You drop their script tag in, add data attributes to your "buy" buttons, and Snipcart turns them into a working cart with checkout. Products live in your HTML markup. So a button looks roughly like this:

<button class="snipcart-add-item"
  data-item-id="sticker-001"
  data-item-name="Track Day Sticker"
  data-item-price="10.00"
  data-item-image="/images/sticker.jpg"
  data-item-custom1-options="Black|Red|Blue">
  Buy
</button>

That's the whole product definition. The price, the variants, the inventory bump, all of it lives in the markup of whichever page you put the button on. Snipcart reads it at runtime when someone clicks. The cart UI is theirs. The checkout is theirs. The dashboard for managing orders, refunds, and stock levels lives on snipcart.com.

It's a clever model and it's why Snipcart works on basically any platform. Ghost, Eleventy, Hugo, raw HTML, doesn't matter. They've stayed relevant for a decade by being deliberately platform-agnostic.

The pricing

Snipcart charges 2% on every transaction. Plus your payment gateway fees on top, so realistically Stripe takes another 3%. So 5% effective before you've shipped a sticker.

If your sales are under $1,000 a month, there's a $20 monthly minimum instead of the percentage. So small shops effectively pay a flat fee, growing shops pay a percentage that scales with success. Sound familiar.

At £1,000 a month in sales: Snipcart takes about £20 (the floor). At £10,000 a month: Snipcart takes £200 plus the gateway. xVoid is $15 a month flat, both ways.

The 2% is small compared to Substack's 10%. It's also compounding, and it's on top of Stripe rather than included.

What you write the products in

This is where Snipcart and xVoid diverge in a way that matters more than the pricing.

With Snipcart, your products are HTML attributes. If you want to update a price, you find the page that has the button on it and edit the markup. If you want to add a variant, you append it to the custom1-options string. If you want to manage stock levels, those live in Snipcart's dashboard but the product itself doesn't. You're maintaining two sources of truth: the HTML markup of your buttons, and the Snipcart dashboard that tracks stock against those markups.

With xVoid, products are records. You create them in the dashboard with images, variants, weights, descriptions, tax rules, shipping zones, the lot. Then xVoid auto-publishes a real Ghost page for each product through Ghost's Admin API. The page lives on your domain, looks like the rest of your blog, and updates when you edit the product. There's one source of truth.

For a shop with three stickers, the Snipcart approach is fine. For a shop with thirty products, variants, weight-based shipping, and tax that needs to handle UK inclusive pricing, you start to feel it.

What Snipcart doesn't do for Ghost specifically

Snipcart is platform-agnostic, which is its strength and the source of every gap.

  • No native Ghost product pages. You build them yourself in Ghost's editor with embedded data attributes. xVoid auto-publishes them through the Admin API.
  • No member-tier gating. Snipcart doesn't know about Ghost's membership tiers. xVoid does, including a content library gated by tier.
  • No print-on-demand. Plug-in your own Printful integration if you want. xVoid has Printful built in with order auto-submit.
  • No verified-buyer reviews. You'd add a third tool. xVoid sends review-request emails after delivery and gates the review form to actual buyers.
  • No custom checkout domain. Checkout happens on snipcart.com. With xVoid, customers check out at pay.yourdomain.com with your SSL.
  • No native UK tax-inclusive pricing. Snipcart supports tax but inclusive-mode handling is a known weak spot for non-US sellers.

None of these are dealbreakers individually. Stacked, they're the difference between "I have a shop bolted onto my Ghost site" and "my Ghost site is a shop".

When Snipcart is the right answer

If you sell three things and you don't plan to grow past that, Snipcart is great. The setup is genuinely fast (their "ten minutes" claim is real). The cart UI is well-designed. The fee is small at small volumes. You don't have to learn a dashboard.

If you're on a non-Ghost platform, Snipcart's platform-agnostic design starts to look like a feature instead of a constraint. It's why people still use it ten years on.

When you've outgrown it

The signals look like this. You've got more than a handful of products. You sell physical and digital. You have variants. You ship internationally. You want member tiers to gate downloads. You want POD. You want your shop to live on your own domain. You don't want to manage stock in two places.

That's the moment Snipcart's "lives in your HTML" simplicity becomes the constraint. xVoid is what you migrate to when the bolt-on stops being enough.

The honest verdict

Snipcart is a good tool. It's the first thing I tried and the last thing I held onto before I built xVoid. Use it if you have three stickers and a Ghost blog. Use xVoid if you've got more going on, or you suspect you will in the next two years, or you just don't want to subsidise a percentage that scales with your success.

Either way, Ghost is the right CMS. The argument is just about what sits on top of it. Try xVoid for seven days and see whether the maths works for you.