Titunge
How a custom system for one tailoring business grew into a multi-tenant ERP and marketplace for garment businesses.
Case study · 2026 · 10 months
The problem
A tailoring business needed one place to run orders, production, materials, staff and money. Once it worked, other garment businesses needed the same thing, but a system built for one shop couldn't safely hold anyone else's data.
The solution
I rebuilt it as a platform where each business gets its own isolated workspace and subdomain, moved the first business in as tenant one, and added a shared marketplace where businesses sell finished pieces.
Where it started
Titunge began in December 2025 as an ERP for Gloria'z Daughter, a tailoring business. It covered the work of running the shop: orders and receipts, production batches, materials and stock movements, customers, employees, payments, expenses and overheads, with costing per garment type so the owner could see what each piece really costs to make.
One system, many businesses
To open it to other businesses, every table gained a business id, and Postgres row-level security enforces the boundary at the database level, so one tenant can't read another's data even if an application query is wrong. Each business works on its own subdomain, and the original standalone app was migrated in as the first tenant and retired.
Menus adjust to each member's role, deleted records go to a recycle bin, and every server action checks which business the signed-in user belongs to before it touches data.
A marketplace with real money in it
Businesses can list finished pieces on the Titunge marketplace, where buyers browse shops, pay through Lenco and track their orders. Paying sellers safely needed more than a checkout:
- Payouts wait for a 24-hour dispute window after delivery before any money moves.
- Lenco doesn't send a webhook when a payment fails, so a scheduled job reconciles orders whose payment never confirmed.
- Payout transfers are checked against Lenco until they settle, and retried a limited number of times if they fail.
- Webhooks are treated as hints: every payment is re-verified with Lenco directly before an order changes state.
Plans and billing
The free plan covers one user. The team plan allows unlimited users and is billed monthly for each seat after the first, charged automatically by a scheduled job.
Outcomes
The first tailoring business runs its daily operations in Titunge
Any garment business can sign up and get an isolated workspace on its own subdomain
Tenant data is separated at the database level, not just in application code
Sellers are paid automatically after a dispute window, with failed transfers retried
Missed or failed payment notifications are caught by scheduled reconciliation
Team plans are billed per seat without manual invoicing
Next case study
TAKUZA