Manikandan
← All work

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
Printed garment cards attached to fabric
Version one: a printed card that travels with each garment.

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.

Pleated Up order sheet with one row per garment

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

Supplier invoice upload and AI extraction

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

Attendance and leave management

Attendance and leave, feeding payroll.

Sales reports by product and variant

Sales by product, variant and month.

Address label printer for dispatch

Address labels for dispatch.

Searchable design asset library

A searchable design library, linked to Google Drive.