$10 once, or a membership

Kaya Goods

A shop: products, variants, cart and Stripe checkout.

Surfaces
web, admin
Architecture
triple
Or $20 a month for all of them

$10 buys this one repository, permanently. Checkout asks for your GitHub username and the invitation arrives within a minute.

What it looks like

  • A product, with its colour and size variants.

    A product, with its colour and size variants.

  • The catalogue, filtered and searched.

    The catalogue, filtered and searched.

  • The seller's dashboard: takings, orders to ship, low stock.

    The seller's dashboard: takings, orders to ship, low stock.

Screenshots of the running application, with its demo data. Nothing here is a mock-up.

{ What you open it for }

The parts that are actually hard.

Every application shows how to build an application, and that sentence helps nobody choose. These are the specific problems this one has already solved.

  • Product variants, and the option matrix that generates them

  • A cart that survives sign-in, and a checkout that survives a retry

  • Stripe webhooks that are idempotent when Stripe redelivers

{ Run it }

Seven commands, then it is running.

No Docker and no database server. Every blueprint runs on SQLite with files on local disk, so the only thing between a clone and a working application is pnpm install.

What you need first

  • Go 1.21 or newer
  • Node 20 or newer
  • pnpm 10.33.4
  • The Grit CLI, 3.312.0 or newer (grit update)
  • Stripe test keys, free from the Stripe dashboard, to take a payment
  • No Docker: SQLite, local disk, no Redis

What each one does

  1. git clone git@github.com:MUKE-coder/grit-storefront.git && cd grit-storefront

    Private. Accept the GitHub invitation first: it arrives within a minute of paying.

  2. grit env

    Writes .env from .env.example with every secret freshly generated.

  3. pnpm install

    The monorepo: API, the shop and the seller dashboard.

  4. grit migrate

    Creates the SQLite database and every table.

  5. grit seed

    The admin account.

  6. cd apps/api && go run ./cmd/demo && cd ../..

    The shop itself: 3 categories, 12 products with photographs, a month of orders and reviews.

  7. grit start

    API on 8080, the shop on 3000, the seller dashboard on 3001.

storefront / terminal
git clone git@github.com:MUKE-coder/grit-storefront.git && cd grit-storefront
grit env
pnpm install
grit migrate
grit seed
cd apps/api && go run ./cmd/demo && cd ../..
grit start

Then open

http://localhost:3000

amara@demo.example.com / admin123

Browse, add to the basket and look at her past orders. Or make your own account.

http://localhost:3001

admin@example.com / admin123

The seller: products and their variant matrix, orders to ship, low stock and takings.

Worth knowing

Taking a payment

Checkout needs Stripe test keys. Card 4242 4242 4242 4242, any future date, any CVC. Without the Stripe CLI listening, the return page still settles the order: it asks the API, which asks Stripe.

# .env
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...

# apps/web/.env.local
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...

Where the stock is taken

When the payment succeeds, never at checkout, with a conditional update so the last one cannot be sold twice. An order that could not take its stock is flagged for the seller instead of failing quietly.

{ Access }

One of them, or every one of them.

$10 buys a single blueprint and keeps it. A membership covers all of them, including the ones that are still on the list, for as long as it runs.

Permanent access to this repository. No renewal, nothing to cancel.

  • Membership

    $20a month

    Every blueprint, including the ones added while you are a member.

  • Membership, yearly

    Two months free

    $200a year

    The same thing for the price of ten months.

  • Lifetime

    $400once

    Every blueprint there is, and every one there will be. Nothing to renew.

  • Or $10 for a single blueprint, kept permanently.
  • The invitation reaches your GitHub account within a minute.
  • A membership covers every blueprint added while it runs.
  • Cancel whenever. What you have already cloned stays yours.