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.
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
Decisions
Documented the architecture as decision records.
Concurrency
An integration test fires two simultaneous reservations at one product against a real database and asserts exactly one succeeds.
A timing bug
Fixed a 20-minute inventory hold that was shorter than Stripe's 30-minute minimum session.
Review
Reviewed authentication, admin, file handling and the payment path by hand, then fixed all five findings.
Handover
Wrote a Shopify export script when the business changed platforms.
- Stack
- SvelteKit, TypeScript, PostgreSQL, Drizzle ORM, Stripe, Cloudflare R2, Docker, Cloud Run
- Also shows
- Design tokens, Accessibility (WCAG AA), Tailwind CSS



