Mithra Whole Foods
Traditional foods, sold through a modern headless store
A complete grocery store for millets, cold-pressed oils, ghee and traditional foods — Next.js storefront on a Medusa v2 commerce backend with cart, checkout, Stripe payments, search, wishlist and a custom homepage CMS.
Full-Stack Engineer — storefront, commerce backend & CMS
2026
Private build — demo on request
Mithra Whole Foods sells traditional, chemical-free foods and needed to move off an ageing template store onto something that feels premium and converts.
I rebuilt it as a headless store: a Next.js 15 storefront talking to a Medusa v2 backend on PostgreSQL. The full commerce path works end to end — catalogue, optimistic cart, customer accounts, multi-step checkout, Stripe payments, order history, wishlist and an in-house search engine with no external search service.
A custom homepage CMS module with an admin live-preview page lets the client change banners and featured collections without a developer.
Mithra Whole Foods sells chemical-free traditional foods — millets, cold-pressed oils, ghee, jaggery — and it was running on an ageing template store that didn't feel premium, couldn't be extended, and needed a developer for every banner change.
The rebuild had to keep the full commerce path working end to end, stay cheap to run for a small brand, and hand day-to-day content back to the client.

- 01
Browse
Category and product pages render from the Medusa Store API, with real product photography and the client's own wordmark traced to SVG.
- 02
Search
/store/search runs inside the backend and returns product ids — no Meilisearch or Algolia to host, pay for or keep in sync.
- 03
Add to cart
The cart context applies a local change first, reconciles with the backend, and rolls back with a toast if the backend rejects it.
- 04
Check out
Address → shipping → payment → review, with Stripe through Medusa's payment provider and an order confirmation at the end.
- 05
Edit the homepage
A custom homepage module with an admin live-preview page lets the client change banners and featured collections without a deploy.
Optimistic cart
The cart updates instantly, then reconciles with the backend and rolls back with a clear message if something is out of stock.
Four-step checkout
Address, shipping, payment and review, with Stripe payments and order confirmation.
In-house search
Product search runs inside the Medusa backend — fast, free and no third-party index to keep in sync.
Homepage CMS
A custom Medusa module plus a live-preview admin page for banners, offers and featured products.
- 01pnpm + Turborepo monorepo with storefront and commerce backend
- 02Stripe payments, customer auth and address book
- 03Production audit, QA report and deployment runbook delivered with the build
- 04Client's own wordmark traced to SVG and real product photography throughout
Headless, on an open-source commerce core
Medusa v2 provides orders, carts, customers and payments as a backend; the storefront is free to look like the brand instead of a template.
Search without a search service
Meilisearch was removed in favour of an in-house search endpoint. For a catalogue this size it's fast enough, free, and has nothing to keep in sync.
Optimistic, but honest
The cart feels instant, but the backend is the source of truth — a rejected change rolls back visibly instead of silently drifting.
Measure before migrating
A slow store prompted 'should we move to Supabase?'. Measuring showed ~290 ms per query from the backend–database distance; a same-region link is 1–3 ms. The answer was region, not vendor.
- →Co-locate the backend and database in one region to remove the ~290 ms per-query penalty.
- →Switch on the analytics and observability that are already built, then fix correctness gaps they surface.
- →Shipping automation through the Easyship fulfilment module.
- →Bring the UI back in line with the defined design system.

Want something like this?
I can build one for you.
Tell me what you have in mind — I'll reply with questions, a plan and a quote.