Retrosnack Clothing - Notepad

Note / E-commerce / 2026

Retrosnack Clothing

Every item exists once, so two people can never buy the same piece.

A custom store for a one-of-one secondhand clothing shop, built to replace selling through Instagram DMs.

5security review findings, all fixed

Role, status and stack
Role
Solo, product design and development
Status
Retired before selling real inventory; the business moved to Shopify

Every item exists exactly once. Two shoppers must never be able to buy the same piece.

That rules out the usual quantity model and makes checkout the riskiest part. So inventory became a status: items are reserved when checkout starts and released if the session expires, and prices are always built on the server.

The Retrosnack home page on a laptop and a phone.
  • The Retrosnack shop and home pages in two browser windows.
  • The Retrosnack home and shop pages on two phones.
  • The Retrosnack home page in a browser window.

Screens captured from the app running locally, shown in device frames. It isn't online. The products are demo items.

full Stripe test-mode purchase verified end to end
1

Product design

It moved from the brief's maximalist editorial direction to a minimal, single-typeface design system. An accessibility audit caught the cherry accent failing WCAG AA contrast. See it with the other designs.

Direction
Maximalist brief, minimal final design
System
One typeface, design tokens in Tailwind CSS
After the fixes
axe found 0 violations across 19 pages

How it was built

  1. Decisions

    Documented the architecture as decision records.

  2. Concurrency

    An integration test fires two simultaneous reservations at one product against a real database and asserts exactly one succeeds.

  3. A timing bug

    Fixed a 20-minute inventory hold that was shorter than Stripe's 30-minute minimum session.

  4. Review

    Reviewed authentication, admin, file handling and the payment path by hand, then fixed all five findings.

  5. Handover

    Wrote a Shopify export script when the business changed platforms.

Stack
SvelteKit, TypeScript, PostgreSQL, Drizzle ORM, Stripe, Cloudflare R2, Docker, Cloud Run
Short entry2026