Acc. XII · Lavandula seminarium — laundry-shop order tracker, cultivated 2026
Labada — mobile-first laundry-shop operations
Technical founder · Product engineer · 2026 · Independent studio
A Taglish PWA that digitises Philippine laundry-shop order intake, kanban status tracking, and no-login customer notification, replacing paper claim stubs.
Lavandula seminarium — laundry-shop order tracker, cultivated 2026
Field notes
The context
Philippine laundry shops track orders on paper claim stubs — no status visibility for the customer, no record if the stub is lost, and no way to see daily revenue or unpaid balances without counting by hand. Labada replaces that stub with a digitised order lifecycle a shop owner and staff can run from a phone.
Cultivation
What I built
- Built a 60-second intake form with customer autocomplete and live pricing pulled off each shop's own rate card.
- Built a six-stage kanban status board (received → washing → drying → folding → ready → released) with one-tap advancement for staff.
- Built public, no-login order-tracking pages styled as a digital claim stub, keyed by a per-order claim token rather than an account.
- Built the owner's daily dashboard — orders, revenue, kilos processed, unpaid balances — and rate-card and add-on management with shop branding.
- Built staff accounts with owner/staff roles, manual GCash billing with screenshot verification, and a Labada HQ ops console for verifying shop submissions and account status.
Root system
How it works
A three-app Turborepo, each with an independent Vercel deploy: apps/landing (Next.js 16) serves marketing and the public /t/<token> tracking route, apps/web is a Vite SPA PWA for shop staff, and apps/admin is a Vite SPA PWA for Labada HQ ops. Shared packages (@labada/core for domain and pricing logic, plus /db, /ui, /config) keep the three surfaces consistent. Supabase Postgres enforces row-level security gated on shop_id and role, Realtime pushes live status to the orders table, and a public track_order(token) RPC is the only anonymous read path. turbo-ignore scopes CI to the app that actually changed.
Harvest
Outcomes
- MVP complete and deployed to an interim domain (labada.carlomigueldy.dev) — the production labada.app DNS cutover has not been validated yet.
- No users, revenue, or adoption to date.
- Billing is manual GCash with screenshot verification; there is no payment gateway integration.
- Six-stage order lifecycle and no-login tracking pages are functioning end to end in the deployed environment.
Herbarium
The work itself






Splitting the tracking surface out as a token-keyed public route, rather than bolting login onto a customer-facing page, kept the core loop honest to how a paper stub actually works. Multi-tenant RLS gated on shop_id up front made the staff/HQ split straightforward later instead of a retrofit.