GitHub

The whole purchase path is your code.

Cart, discounts, shipping selection, tax, and order creation run inside the same app as the storefront. There is no hosted checkout you can't style and no redirect where your funnel goes dark.

2,4181,740918312

checkout

Sell

Five commands and it runs.

Five commands. No account, no CLI login, no dashboard in between.

~/litestore

$git clone https://github.com/litestore/litestore

$bun install

$cp .env.example .env.local

$bun run db:push && bun run db:seed

$bun run dev

✓ storefront http://localhost:3000

✓ admin http://localhost:3000/admin

$ _

What it needs
  • Node 20+ and Bun
  • PostgreSQL 15+
  • Redis (or Upstash)
  • S3-compatible storage
  • Resend for email and sign-in
  • Stripe when you turn on checkout

Inside cart & checkout.

01

Guest or account

Customers can check out without creating an account, and the order still attaches to their record when the email matches.

02

Order intents

Carts are saved as records before payment, so abandoned checkouts can be recovered and measured.

03

Discounts applied server-side

Coupon rules, limits, and stacking are resolved on the server, so prices can't be altered from the browser.

04

Stock reserved correctly

Checkout writes a real stock movement as the order is placed, so two customers can't buy the same last unit.

Modules that sit next to this one

MIT licensed · self-hosted

Cart & checkout ships with Litestore. So does everything else.

Get the source