Case study · Nandy AI
Own product · LiveBank statement in, matched payments out.
Nandy AI is an AI-native back office for housing societies, live at nandyai.com. I designed and built it end to end: the product, the API and a 3D landing page.
- Role
- Lead design, front end, API, 3D landing
- Year
- 2026
- Timeline
- 4 weeks
- Stack
- Astro SSR, Express, Kysely, Postgres RLS, Three.js
- Link
- nandyai.com ↗

Context
Committees spend weekends matching payments to flats.
Maintenance arrives as UPI, bank transfers and cheques, with names that rarely match the register. Nandy reads the bank statement, matches each credit to the right flat and bill, and leaves only the genuinely ambiguous ones for a human.
Reconcile
Each credit matched, flagged or handed back.
One September statement: nine credits matched, two ambiguous (a resident with two flats, waiting for a choice), two unmatched, and three proposed expenses. Shortfalls and duplicates are flagged before anyone closes the books.

The committee
Dues, collections and verifications next to Reconcile and the assistant.
The dashboard is built for a volunteer with ten minutes: what came in, what’s pending, what needs a decision. Every tenant is isolated twice, by a tenant-scoped repository and by Postgres row-level security.

The landing
The story told through a scroll-driven Three.js village.
As you scroll, the village lights up and each chapter explains one job Nandy does, starting with the matching.

Designed and built end to end, and live at nandyai.com.
Own product · design, front end, API and 3D landing by me · Reconcile and dashboard rows are demo data