ThriveCart

thrivecart.com

ALMOST

A weekend of work, and real gaps remain.

A checkout and cart for digital products with upsells, order bumps and affiliate handling attached, sold as a one-off licence rather than a subscription.

Promptfree, for everyone, and the only version there is
Build the checkout I actually need instead of ThriveCart — and note first that it is bought once rather than subscribed, so the money argument here is thin.

The reason to build is control: a checkout on your own domain, with the price computed by your own server, and no third party in the payment path.

STACK
- Node 20+ with Fastify, server-rendered HTML
- SQLite through better-sqlite3, WAL mode
- One payment provider, hosted fields or hosted checkout, so no card data touches this
- Caddy in front

THE RULE THAT MATTERS MOST
- **The price comes from the server, never from the page.** A product identifier goes up, a price comes back. Anything else means somebody edits the markup and buys the thing for one euro, and it is the most common flaw in cart implementations
- The same applies to quantity, shipping, discounts and tax. The browser displays; the server decides
- The total is recomputed immediately before the payment session is created, from identifiers and quantities alone

THE DATA MODEL
- products: id, sku, name, price_cents, currency, tax_category, delivery_kind, is_active
- offers: id, product_id, kind, config_json — an order bump, an upsell, a downsell
- carts: id, token, items_json, subtotal_cents, currency, created_at, abandoned_at, converted_at
- orders: id, number, cart_id, email, name, subtotal_cents, tax_cents, discount_cents, total_cents, currency, status, provider_ref, placed_at, refunded_at
- order_items: id, order_id, product_id, sku, name, unit_price_cents, quantity, tax_rate, tax_cents — copied at the time of order, so a later price change never rewrites history
- upsell_events: id, order_id, offer_id, shown_at, accepted_at, declined_at
- affiliates, referrals, commissions — if you need them, and the shape is under Rewardful elsewhere in this catalogue
- provider_events, for idempotency by event id

UPSELLS AFTER PAYMENT, WHICH IS THE FEATURE
- A one-click upsell charges the card again without asking for it, which requires the processor to have kept the payment method and to allow a subsequent charge. Check that your provider supports it and under what terms before designing the flow
- Every accepted upsell is its own order line with its own charge, recorded separately. Bundling it into the original order makes a refund impossible to reason about
- **A declined upsell must not block delivery of what was already bought.** Deliver the first purchase immediately, on payment, and treat the upsell as a separate transaction
- Show the upsell once. A funnel that asks three times is the pattern people complain about publicly, and it costs more in refunds than it earns

CHECKOUT
- Three fields and a payment method. Every additional field costs conversions, measurably
- The order created from the verified webhook, never from the browser returning to a success page — somebody who closes the tab after paying must still have an order
- Idempotency by event id, and out-of-order delivery handled
- Tax on digital goods is usually the buyer's rate. Collect the country, apply the rate, and store two pieces of non-conflicting evidence of where they were

AFTER THE ORDER
- Delivery through signed expiring links with a use limit, where a resumed download counts as one use rather than five
- A receipt that arrives, from your own domain with SPF, DKIM and DMARC configured
- An order-status page at a token URL, no account
- Refunds through the provider, with access revoked from the webhook

WHAT MATTERS MOST
Server-side pricing and webhook-created orders. Try to buy something at a price you edited in the browser, and close the tab immediately after paying — if either produces the wrong outcome, nothing else in the checkout matters.

What you lose

  • A checkout tested against a great deal of real traffic, which is what the conversion claim rests on
  • One-click upsells after payment, which need the processor to charge again without asking for a card
  • An affiliate system with attribution and payouts already built
  • A one-off price, which is unusual enough that the money argument is weak

If you would rather not build

  • A hosted checkout from the payment provider, which is free and handles the hard parts
  • Lemon Squeezy or Paddle, if what you actually want is somebody else carrying the tax

The escape hatch

open source · no votes, no paid placement

Medusa

$0

A modular open-source commerce engine with a checkout you control.

medusajs/medusafree · open source

Vendure

$0

A headless commerce framework with a plugin system.

vendure-ecommerce/vendurefree · open source

Why this verdict

our own opinion · changed only by a person

47/100

Verdict kinda at 47: the checkout is a fortnight, but the product is a one-off licence rather than a subscription, which makes the saving small, and one-click upsells depend on what the payment provider allows rather than on your code.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 1/day
views0117 Jul22 Jul27 Jul1 Aug6 Aug11 Aug15 Aug
views prompt copies none yet votes none yet

Questions about ThriveCart

answered from the record above

Is ThriveCart free?

No — the plan we track is $41.58 a month. Bought once at around $495 for a lifetime licence rather than subscribed; the figure shown spreads that over a year.

Can you replace ThriveCart by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 47 out of 100, build time a weekend. Read what you lose before you decide.

How much does ThriveCart cost?

$41.58 a month on Standard — $498.96 a year. Recorded 14 Aug 2026.

What do you lose by replacing ThriveCart?

A checkout tested against a great deal of real traffic, which is what the conversion claim rests on; One-click upsells after payment, which need the processor to charge again without asking for a card; An affiliate system with attribution and payouts already built; A one-off price, which is unusual enough that the money argument is weak. If any of those carry weight for you, keep paying.

Is there an open-source alternative to ThriveCart?

Yes: Medusa, Vendure. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 27 in Commerce & contracts

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc