Fro Admin
- Client
- Fro
- Industry
- Operations back office (on-demand services)
- Year
- 2026
The operations back office behind the Fro on-demand marketplace: bookings and live job tracking, provider wallets, ledger entries and withdrawals, payments, services catalogue and granular role-based permissions, on Supabase and PostgreSQL.
20+
Tables behind bookings, money and access
4
Separate money concerns: wallet, transaction, balance, withdrawal
0
Balances stored without a ledger to rebuild them
What it covers
- Bookings & live job tracking
- Provider wallets & ledger
- Withdrawals & payouts
- Payments & payment events
- Services & categories catalogue
- Expenses tracking
- Affiliate programme
- Threads & messaging
- Granular RBAC
The half of a marketplace nobody sees
The public side of an on-demand marketplace is a booking form. The side that decides whether the business works is this one: who took the job, what the customer paid, what the provider is owed, what the platform kept, and whether the money has actually moved.
Money as a ledger, not a number
Provider earnings are ledger entries rather than a running balance. Wallets, wallet transactions, provider balances and withdrawals are separate concerns, so a withdrawal can be traced to the jobs that funded it and a balance can always be recomputed from its history.
Jobs in flight
Bookings carry live location for jobs in progress, with threads and messages against each one, so a dispute is answered from the record rather than from memory.
Permissions with verbs
Roles, permissions, role permissions and per-user permission grants are separate tables, so access is granted by verb on a resource rather than by handing someone the admin role.
How it was built
- Framework
SvelteKit
Server load functions, form actions and endpoints; SSR by default.
Svelte 5
Runes for reactivity ($state, $derived, $effect).
- Language
TypeScript
Strict mode across app and server code.
- Data
PostgreSQL
Primary datastore.
Supabase
Managed Postgres with row-level security.
Drizzle Kit
Committed SQL migrations rather than push-to-prod diffing.
Drizzle ORM
Typed schema and queries, with migrations generated from the schema.
- Forms
Superforms
Progressive-enhancement forms with server-side validation.
Zod
One schema validating both client and server.
- UI
Bits UI
Headless primitives behind the component library.
Chart.js
Reporting charts.
Dark mode
System-aware theme switching.
Lucide
Icon set.
TanStack Table
Sorting, filtering and pagination for admin tables.
Embla
Carousels.
LayerChart
Reporting charts.
Tailwind CSS
Utility-first styling with a project design token layer.
- Reporting
jsPDF
Server-side PDF generation for reports and receipts.
jsPDF AutoTable
Tabular report export.
Inside the system