Case study · 03 Enterprise · Multi-tenant fintech

A whole lending business,
one platform.

VSS Finance is a multi-tenant microfinance & loan management platform — built end-to-end for a lending business to run on day one.

Onboard an organisation, manage users & clients, originate & approve loans, disburse funds, track repayments and generate signed PDFs — all from one console.

Role Lead engineer · product owner
Year 2024 — 2026
Scope SaaS · multi-tenant
Status In production · pilot live
vssfinance.app/dashboard
VSS Finance dashboard
01 / The brief

Run a finance company — from scratch.

Microfinance and small-loans operators in Sri Lanka still run on spreadsheets, paper agreements & WhatsApp. VSS Finance replaces all of that with a tenant-aware web platform that can be deployed for any lending org in under an hour.

The product runs the full loan lifecycle — from initial client onboarding through approval, disbursement, repayment tracking & formal PDF agreements.

Built on Next.js 15 + React 19 with a Firebase backend (Auth, Firestore, Storage, Admin SDK). Every record lives under a tenants/{tenantId}/… path so multiple companies share one deployment without a single byte of data crossover.

Role-driven workflows underpin everything: super admin, admin, loan officer & viewer each get a tailored surface with approval limits enforced server-side.

PDF generation is first-class — agreements, applications, promissory notes & rejection letters are produced on demand using @react-pdf/renderer and merged with pdf-lib for the signed pages.

Tech stack
Next.js 15 React 19 Firebase Auth Firestore Storage Admin SDK @react-pdf pdf-lib Tremor Recharts Framer Motion
02 / The product

Two faces, one database.

A bright, marketing-led public site sells the platform to lending businesses; a calm dark-mode console then runs the day for the staff inside. Both surfaces read the same Firestore.

Public · marketing

Sell the idea.

A clean light-mode marketing site introduces VSS Finance to prospective lending businesses — features, pricing, security & a one-step "Get started" onboarding into the console.

1Onboarding flow
6Feature cards
Tenants
Console · 10 modules

Run the business.

Dashboard, Clients, Loans, Users, Analytics, Documents, Branches, Performance, Audit Log, System Backup, Help & Settings — every screen tenant-scoped, role-gated & auditable.

12Modules
4Roles
SaaSArchitecture
03 / Inside the platform

Marketing site, then ten consoles.

A walkthrough of the surfaces a tenant actually uses — from first marketing click through to the granular system backup & recovery panel.

Approval limits, by role

Each role carries an approval limit — loan officers draft & submit, admins approve up to LKR 1M, super-admins remove the ceiling. Limits enforced server-side via Admin SDK.

  • Submit · approve · reject · disburse lifecycle
  • Loan history entries capture every state change
  • Tenant-scoped — one org can't see another

PDF agreements, generated

The loan agreement, application form, promissory note & rejection letter are all generated from React templates and merged with uploaded signed pages via pdf-lib.

  • @react-pdf/renderer templates per doc type
  • pdf-lib for signature merging
  • Filed against the loan in Firebase Storage
04 / Feature set

Twelve modules. One sidebar.

Each module is a discrete dashboard with its own service layer, Firestore collection structure & role-gated actions.

01
Tenant onboarding

A first-run wizard provisions the tenant, bootstraps a super-admin & seeds the chart of accounts.

02
Clients & KYC

Search, profile, employment & document storage for every borrower in the org.

03
Loan origination

Multi-step new-loan flow with guarantors, CRIB, docs & financial details.

04
Calculator

Flat-rate & reducing-balance models with profit, ROI & live risk analysis.

05
Users & roles

Invite, assign role, set approval limit & branch — all role-checked server-side.

06
Analytics

KPIs, loan & financial trends, performance metrics powered by Recharts & Tremor.

07
Document library

All generated PDFs & uploaded scans, organised by loan ID and searchable.

08
Branches

Run multiple offices under one tenant with branch-level dashboards & KPIs.

09
Performance

Track loan officer KPIs, conversion & processing time per staff member.

10
Audit log

Every mutation is logged with actor, IP, timestamp & tenant — paginated & filterable.

11
System backup

Full or incremental snapshots with retention policy & one-tap restore.

12
Integrations

SMTP, SMS gateway, payment gateway, cloud storage & analytics — all configurable per tenant.

05 / In your pocket

Two phones, two audiences.

Loan officers carry a dark, data-dense console for approvals, disbursements & client visits. Borrowers carry a clean, light borrower app to see their balance, next payment & agreement PDFs. Same Firestore, two truly different surfaces.

Console · for loan officers
9:41
Mon · 28 May Good morning, Pasan
PW
Disbursed · today
LKR 1.4M
↗ +12% vs yesterday
Collected · today
LKR 920K
42 of 45 due
Pending approval
7
3 over LKR 100k
Active borrowers
128
+4 this week
#LA-1284Pending
Ayomi Indika Jayasinghe
Loan officer · pasan vimukthi
LKR 50,000 4 months · Flat
Approve
View
Home
Clients
Loans
Me
9:41
‹ Back · loans Loan #LA-1284
!
Awaiting your approvalPending
Ayomi Indika Jayasinghe
Female · age 38 · Kandy branch
LKR 50,000 Flat · 20%/mo
Term & schedule
4 months · LKR 18,500/moReducing
Risk · score
B · LowCRIB ✓
Guarantor
Nimal Perera · brother · LKR 18k income
Approve · LKR 50K
Reject
Home
Clients
Loans
Me
Borrower app · for clients
9:41
Welcome back Ayomi
A
Outstanding balance LKR 37,500
1 of 4 paid 3 months left
Next payment
Due Friday 1 June
LKR 12,500
Apr installment
Paid 1 May · cash
12,500
Pay now · LKR 12,500
Home
History
Docs
Me
9:41
‹ Back My documents
📄
Loan Agreement
PDF · signed 24 Apr
Application form
PDF · 22 Apr
Promissory note
PDF · 24 Apr
Apr · receipt
LKR 12,500 · cash
View all documents
Home
History
Docs
Me
01

Provision a tenant

Sign up the lending business, configure branches & chart of accounts, invite the first super-admin. The console boots empty under tenants/{id}/… & isolated forever.

02

Add staff & set limits

Super-admin invites loan officers, admins & viewers; sets each user's approval limit & branch. Permissions enforced server-side via Firebase Admin SDK.

03

Onboard clients

Capture identity, contact, employment & income; upload CRIB & ID; the profile is searchable from day one and reusable across every future loan.

04

Originate & approve

Officer drafts the loan with guarantor, docs & financial details; calculator computes schedule & risk; submit kicks it up the approval chain.

05

Generate & sign

Approval triggers PDF generation for the agreement, promissory note & application. The borrower signs in person; the signed pages merge back via pdf-lib.

06

Disburse & track

Funds disbursed; installment schedule live on both the staff console & the borrower app. Audit log records every action; analytics roll the numbers up to the dashboard.

Most lenders here run on spreadsheets & carbon-paper. VSS Finance is what a small finance company looks like when you treat it like a real product.
Pasan W. · Lead engineer & product owner · VSS Global
06 / The outcomes

From paper-and-ink to cloud-native.

A pilot tenant in production — and a platform built to scale from there to dozens of independent lending businesses on the same deployment.

12
Modules live
From onboarding to backup, end-to-end coverage.
4
Roles supported
Super admin · admin · loan officer · viewer.
1+
Tenant in production
VNS Speed Money — first lender on the platform.
16
Engineers led
Across Australia, Malaysia & India.
Up next · 04 / 09

DataFlow

The world's first internet-resource marketplace — buy & sell mobile data, bandwidth & Wi-Fi access instantly.