The brief
A themed gift shop needed a real storefront rather than a marketplace stall — its own catalogue, its own checkout, and an admin the owner could operate without ringing a developer every time a product changed.
What we built
- Storefront with catalogue, search, product pages and a cart
- Admin for products, stock, imagery and long-form content
- Rich-text editing so descriptions and journal posts are written in place, not in code
- Image pipeline to S3-compatible object storage rather than the app server
The hard part
The data model. It runs to 23 Prisma models — products, variants, stock, orders, content, media — and that shape was settled before any screens were built. Getting it wrong is the single most expensive mistake in a shop, because every later feature either fits the schema or forces a migration under live data.
The second call was infrastructure: uploads go to object storage, never the local filesystem. Serverless disks are ephemeral, so files written locally vanish on the next deploy — a failure that only shows up in production, days later.
Where it got to
Live on its own domain with working inbound and outbound email. Payments are deliberately not wired in yet — it runs as a full demo until the shop is ready to take money.
