Marlow & Finch
Homeware store with pincode delivery and GST invoices
Marlow & Finch is a sample brief. We imagined a design house in Kala Ghoda selling glassware, ceramics, linen and wood across India, whose objects deserved better than a grid of thumbnails. The brand is imaginary. The store isn't: we designed and engineered it, and you can shop, check out and track an order in the live build below.
A sample brief, a real product. We wrote this brief ourselves. The business is imaginary; the product is not: we designed and engineered it, and you can use it above. We publish results only for work a client has let us verify, so this page shows none.
The brief
We imagined a small design house in Mumbai that sells objects people covet: hand-blown glass, stoneware, linen, turned wood. Its old shop flattened them into thumbnails, and its checkout left buyers guessing about delivery dates and cash on delivery.
We asked what the store should be if it treated the product page like a showroom and the checkout like a promise, and built it.
The problem
Selling fragile objects across India is mostly logistics. Some pincodes can't take cash, some take a week, glass ships differently from linen, and every order needs a correct GST invoice. Most stores hide all this until the last step. We wanted it answered on the product page, without giving up full-bleed imagery or speed on mobile data.
- Editorial layouts that still sell
- Fast on mobile data
- Delivery date and COD known before checkout
- GST worked out per item, per state
The approach
We designed the product page like a magazine spread, then put the hard questions right under the price: enter a pincode and you see a delivery-by date, an express option and whether cash on delivery works there. Checkout offers three couriers priced by weight and zone, payment runs through a Razorpay-style sheet, and the invoice splits GST the way the law expects. In the demo the couriers and checkout are simulated; no money moves.
What would change for a shop like this: fewer 'when will it arrive?' messages, fewer cash orders sent where they can't be collected, and invoices the accountant doesn't have to redo.
- Headless commerce, static-first delivery
- Pincode serviceability and courier rates via Shiprocket
- Razorpay for UPI, cards and netbanking
- HSN-coded GST invoices
- Image pipeline tuned per breakpoint
What shipped
- Categories, search and sort
- Quick view with variants
- Full product pages with variants and reviews
- Saved items and recently viewed
- Pincode check: delivery-by date, express and cash on delivery
- Cart drawer with promo codes and a shipping estimate
- Courier choice: Delhivery, Xpressbees or Blue Dart, priced by weight and zone
- Razorpay-style payment: UPI, cards, netbanking, or cash on delivery
- GST tax invoice with HSN codes, CGST and SGST or IGST by state
- Order tracking by AWB, with courier scans and WhatsApp updates
- Account: orders, tracking, returns, invoices, addresses, gift cards
Under the surface
How it is built
Headless commerce: Nuxt 3 renders the storefront at the edge on Cloudflare Workers, pulling catalogue and orders from the Shopify Storefront GraphQL API. Razorpay takes payment, Shiprocket answers serviceability and books couriers, and Pinia keeps the cart optimistic. In the demo, checkout and couriers are simulated.
- Edge rendering close to Indian metros
- GraphQL persisted queries, cache-tagged per product
- Optimistic cart with server reconciliation
- Pincode zones and COD rules resolved before checkout
- Invoice lines carry HSN, discount share and tax by rate
Considered and turned down
A custom Laravel commerce stack. Shopify's order model, with Razorpay and Shiprocket at the edges, kept PCI scope small and the effort on the storefront.
Stack
The mechanism, working
The part of Marlow & Finch that was hardest to get right, as a small model you can operate.
Edge-rendered commerce
Storefront rendered on Cloudflare Workers with persisted GraphQL queries, so pages are assembled close to the shopper instead of at one distant origin.
