Workbench
Orders, stock and GST invoices for one-person shops
Workbench is a sample brief. We imagined a one-person ceramics shop selling on Instagram and at weekend markets, and asked what app would actually fit its day. The shop is imaginary. The app isn't: we designed and engineered it for iOS and Android, and the browser build below is the web version of the same app.
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 Workbench Ceramics: one maker, sometimes a helper, selling through Instagram, WhatsApp and a market stall on Sundays. Orders live in chats, stock lives in the maker's head, and GST invoices get done late at night.
Most tools for this are enterprise software shrunk to a phone. We designed and built one that starts from a one-person business instead.
The problem
Makers run the business between other tasks. Every flow has to be finishable in the gaps: at a stall, on a train, one-handed, sometimes without signal.
- Cross-platform without feeling generic
- Works offline at markets and studios
- Invoice, get paid and ship from one place
- A look that feels crafted, not corporate
The approach
We designed the three things a maker does every day (take an order, send an invoice, check stock) and built native-feeling apps from one shared core. Invoices add GST and go out as a payment link on WhatsApp; money settles through Razorpay Route and lands as a weekly payout with a UTR the maker can match in the bank app.
What would change for a shop like this: orders stop getting lost in chats, and getting paid stops being a separate job.
- One design system, two native shells
- Local-first data with quiet sync
- GST invoices with WhatsApp payment links
- Haptics and motion tuned per platform
What shipped
- Live order feed with status advance
- Stock with low-stock alerts and reorder
- Invoice builder with a timer and GST
- Invoices sent with a payment link on WhatsApp
- Weekly payouts with UTR references
- Customers with lifetime value
- Product catalogue
- Reports and CSV
- Staff PINs and permissions
Under the surface
How it is built
One React Native and Expo codebase for both stores and the web; Supabase provides Postgres, auth and realtime order events, Razorpay Route settles payouts to makers, the WhatsApp Business API carries invoices and order updates, and Fastlane keeps releases boring.
- Realtime order feed via Supabase channels
- Razorpay Route linked accounts with KYC onboarding
- Over-the-air updates through Expo
- Store releases automated with Fastlane lanes
Considered and turned down
Native twins were overkill for this surface; Expo covers both stores, and the web build, from one codebase.
Stack
The mechanism, working
The part of Workbench that was hardest to get right, as a small model you can operate.
Realtime order feed
Orders stream to the maker’s phone over channels; status changes fan out to buyers instantly.
