Front-End · Full-stackSolo project · Jul 2025 – present· Permission pending
Zarrar Cooling Services
A React + Supabase platform — public site, admin, technician and branch panels — converted from single-tenant to multi-tenant in version 2.
Overview
Zarrar Cooling Services works across regional branches. The platform covers a public website plus three role-based panels — admin, technician and branch — on React with a Supabase back-end. I planned, designed and built it alone, and I still maintain it.
Challenge
Version 1 was single-tenant: one business, one dataset. Version 2 had to serve several businesses from the same app, with each tenant's data kept apart — and all the existing data belonged to the original business.
My role
“Planning, UI/UX, front-end and back-end — all of it, solo.”
Solution — v1 → v2 multi-tenant
I converted the existing app to multi-tenant, and rehearsed the migration on a test database holding a copy of the real data before running it.
- Step 1
Test database
Copied production data into a separate test database to rehearse the migration.
- Step 2
Add tenant ID
A migration per table added a tenant ID column to every table.
- Step 3
Backfill
Every existing row was assigned to tenant 1 — the original business.
- Step 4
Row-level security
Supabase row-level security policies keep each tenant's rows to that tenant.
Visuals
Results
[VERIFY: outcomes — e.g. number of tenants onboarded, client quote with permission]. Existing data was migrated to tenant 1 with the app staying in service [VERIFY].