In progressSolo full-stack developer
All work
Yulan Mini Mart
A full-stack grocery e-commerce platform for local delivery in Kathmandu Valley.
Next.jsTypeScriptReactPostgreSQLPrismaTailwind CSS
01 / Problem
Local grocery shops in the Kathmandu Valley mostly run on informal ordering — phone calls, WhatsApp messages, memory. There's no shared system for inventory, no order history, and no reliable way to track a delivery once it's out the door. Generic marketplace apps solve this for large chains, not for a single shop with a small delivery radius and thin margins.
02 / Solution
A full-stack platform built around one operator: a customer-facing storefront for browsing and ordering, an inventory system the shop actually keeps up to date, an order pipeline from checkout through delivery, and an admin dashboard to run all of it without needing a second engineer on staff.
03 / Architecture
Next.js (App Router) handles both the storefront and the admin dashboard from one codebase, with API routes for orders, inventory, and auth. PostgreSQL via Prisma stores the relational data — products, orders, delivery zones, accounts — where referential integrity actually matters (stock counts, order state, customer accounts). Authentication separates customer and admin roles.
04 / Technical decisions
- Chose a relational database (Postgres + Prisma) over a document store because orders, inventory, and delivery zones are fundamentally relational, and correctness there matters more than schema flexibility.
- Kept the storefront and admin dashboard in a single Next.js app instead of splitting into separate frontend/backend services — for a single-operator business, the operational overhead of a split architecture wasn't worth it.
05 / Lessons learned
Building for a real, specific business (rather than a generic e-commerce template) forces different priorities — the inventory and delivery-zone modeling mattered far more than checkout polish.
Note
Some details on this page are marked TODO and still need real numbers, links, or screenshots.