Pleated Up
A garment unit grew from 5 to 40 people without more errors
A custom clothing brand grew from 5 to 40 people. Order errors fell from 8% to 0.5% once each garment stopped being copied between Shopify, paper slips and notebooks.
- Role
- Tech and operations, design and build
- Period
- 2025 – now
- Team
- Me, with the floor and the founder
- Partners
- Tailors, cutting, dispatch, accounts
- Stack
- React, Supabase, Cloudflare Workers and D1, Shopify, Gemini
- Reading time
- 5 min

The problem
Every Shopify order carries its own notes: measurements, sleeve length, add-ons. Those notes were copied onto paper slips for the tailors. Fabric was tracked in a notebook. Attendance came off a fingerprint machine, and payroll was worked out in Excel.
About 8 in every 100 orders went out with something wrong.
What I found
The errors were not careless tailors. They happened at the handoffs. Every copy from one place to the next could drop a detail.
Fabric is not one number. 50 metres at 44 inches and 50 metres at 58 inches add up to 100 metres in a notebook, but they don't cut the same garments.
Key decisions
- Start with the tools they already use
- Version one was not an app. The team lived in Shopify and Google Sheets, so I wrote a sync that puts each garment on its own row, and a script that prints a card that travels with the fabric through cutting, stitching, QC and packing.
- Then one record, never retyped
- The ERP made the Shopify order, its notes and the tailor assignment one record. The floor prints its view from it.
- Stock by width, not just metres
- Each delivery records the width that actually arrived. Staff don't tag rolls. The system keeps widths apart for them.
- Receiving, billing and paying are separate
- One order can have several deliveries, bills and an advance. Before building it, I compared how six apparel and inventory systems handle this.
- Mistakes are reversed, not deleted
- Receipts, returns and stock counts keep their history. A delivery can't be reversed once its fabric is used.
How it's built
- Stack
- React and TypeScript on Supabase (Postgres, edge functions), plus a Cloudflare Worker and D1 for purchasing and inventory. Shopify GraphQL and REST, Google Drive.
- AI where it helps
- Gemini reads supplier invoices, with an OCR fallback. A person confirms every bill.
- Money is exact
- Amounts are stored as integer paise and quantities as thousandths. Writes are atomic with revision checks, so two people can't overwrite each other.
- Hardware too
- A small Windows bridge reads the fingerprint device and reports when it goes offline. It caught punches being lost when the device clock jumped backwards.
- Tested
- More than 380 automated tests guard the stock and money logic.
Result
- 8% → 0.5%
- order errors
- 3×
- faster order processing
- 30 hrs
- saved every day
- ₹40,000
- a month in software cancelled
The floor works from one system, from order to tailor to dispatch, with fabric, attendance and payroll beside it.

Version one: one row per garment, in the Google Sheets the team already used.

Supplier invoices read by AI, then confirmed by a person.

Attendance and leave, feeding payroll.

Sales by product, variant and month.

Address labels for dispatch.

A searchable design library, linked to Google Drive.

