Case Study · Technical Architecture

Angarock

Built a fashion commerce platform end to end — a shopper app for iOS and Android, and an admin console where the same catalogue, orders, payments, shipping and returns are run by one team.

See the visual story

System

Fashion Commerce Platform

Retail · Apparel · Direct-to-consumer

Build time

5 months

5 delivery phases

Stack

11 technologies

Across 4 layers

The constraint

What the system had to solve before a line of it was designed.

Angarock sold across a marketplace storefront, an Instagram inbox and a WhatsApp order book, and none of the three agreed with the others. Stock was counted in a spreadsheet that was already wrong by the time it was shared, so the same jacket could be oversold twice on a good day and sit unlisted on a bad one. Orders arrived as screenshots, addresses were retyped by hand, payment confirmations were chased in a chat thread, and a return meant reconstructing what the customer had actually bought from three different places. The catalogue existed in nobody's system of record — it lived in whichever photo folder the last person had opened.

Architecture

The stack read top down, from what the user touches to what keeps it running in production.

Client

What the user touches — the screens, the app shell, and the state that keeps them responsive.

  • React Native (iOS + Android)
  • Next.js (admin console)

Services & API

Business rules, authentication, background work, and every third-party system the product talks to.

  • Node.js
  • Razorpay (UPI, cards, net banking)
  • Shiprocket API
  • Algolia
  • Firebase Cloud Messaging

Data

The system of record, the indexes that make it searchable, and the stores that hold everything else.

  • PostgreSQL
  • Redis
  • AWS S3 + CloudFront

Infrastructure

How it is packaged, served, and kept running once it is somebody's production system.

  • Docker

Modules delivered

Each one shipped production-grade, not as a demo surface.

  • 01iOS & Android shopper app
  • 02Catalogue, variants & inventory
  • 03Checkout, payments & COD
  • 04Shipping, tracking & returns
  • 05Admin console & reporting

Mobile surface

What the app does on the device, and what it needs from the backend to do it.

  • 01Browse by category with top picks, wishlist and search filtered down to size, colour and price
  • 02Product detail with variants, sizing and stock state, straight into a cart that survives a session
  • 03Checkout with saved delivery addresses and payment by UPI, card, net banking or cash on delivery
  • 04Live order tracking with courier updates, full order history and push notifications on every state change

Delivery

5 months in total, staged so each phase reached production before the next one started.

  1. 01catalogue
  2. 02cart and checkout (2 months)
  3. 03payments
  4. 04shipping and returns (2 months)
  5. 05admin console and launch (1 month)

Design decisions

What we learned before building, and what the built system moved.

We spent the first two weeks in the order book rather than in Figma. Reading a month of real orders showed that the costly failures were not in the storefront — they were in the seam between selling and fulfilling: stock that was already gone, addresses transcribed wrongly, and returns that nobody could tie back to a payment. That is why the build started at the catalogue and the stock record rather than at the home screen, and why variant-level inventory, a single order state machine and a payments ledger were in the first release instead of the third. The app's shape came from the same reading: the buyers who converted browsed by category and picture, not by search box, so the home feed leads with categories and top picks and keeps search one tap away rather than making it the front door.

The first quarter on the platform carried 1,842 orders and ₹12.5 lakh of revenue, with 12,480 customer records consolidated out of three channels that had never been reconciled before. Returns fell from 6.4% to 2.1% — most of the difference was orders that should never have been accepted, now blocked by accurate stock, plus sizing shown on the product page rather than asked about in a chat. Order handling stopped being manual: addresses, payment state and courier tracking arrive on the record instead of in a thread, and the team runs the day out of one console rather than four browser tabs and a spreadsheet.