Rent in India is still mostly tracked across spreadsheets, notebooks and memory, chased over WhatsApp, and receipted by hand. Most of the software that exists was built for US-style property management — dollar-first, single rent field, no idea what a PG is. So we built RentGable: every property, tenant and rupee in one place, India-first, ready for the world.
This post is about the three design decisions that shaped the product — and the unglamorous engineering underneath them.
Why we built it
The people we built for aren't enterprises. They're independent landlords with a handful of units, PG and co-living operators running shared houses, and small property managers keeping books for several owners at once. Their common problem isn't scale — it's sprawl: no clear picture of who owes what, and a month-end that eats a weekend.
The product goal followed directly: one dashboard for every property, unit and tenant; bills and receipts generated for you; live dues, occupancy and revenue at a glance.
The rate cascade
Most tools give you a single rent field per unit. Real portfolios don't work that way — one building has a different due-day, one room has a discounted rate, one contract negotiated its own electricity terms.
RentGable models this as a four-tier rate cascade: System → Property → Unit → Contract. You set a value once at the system level and override it only where it actually differs. The contract always has the final say at billing time, and a colour-coded source badge on every value tells you exactly where it came from.
Every charge on every bill should be explainable in one glance — that rule shaped more of the schema than any feature request.
The cascade covers rent, due-day, grace period, late fee, electricity, water, cleaning and internet — so utilities flow into bills through the same explainable path as rent.
Room sets for PG & co-living
The PG use-case broke every off-the-shelf data model we looked at. A shared house isn't apartments: it's individual rooms that get rented in groups, and the groups change as tenants move in and out.
Our answer is room sets — group two to five rooms into a set rented as one unit, then merge or break sets on demand. The catch that keeps books clean: sets can only be restructured while the rooms are vacant, and the system enforces it. Allocation flows are guided and conflict-free, per-room or per-set.
GST, receipts and auto-pay
India-first means more than a ₹ symbol. Three things had to be right:
- GST invoices with gap-free numbering. Tax invoices and credit notes are sequential per fiscal year with no gaps — an accounting requirement, which means invoice creation is transactional and concurrency-safe by construction.
- Receipts on every payment. Online, cash or bank transfer — every payment generates a receipt automatically, and tenants see the landlord's business name, not ours.
- E-mandate auto-pay. Rent collection through regulated e-mandates, so the monthly WhatsApp chase becomes a notification the tenant already agreed to.
The boring parts
Under the product is a deliberately unexciting stack: a Vue 3 front-end, a Go back-end, PostgreSQL. Every change is transactional and audit-logged; each account's data is fully isolated; updates sync live across tabs and teammates. Dates render dd-MMM-yyyy by default, and the address model ships data for 250 countries so "India-first" never hardens into "India-only".
There's no native app to install — the whole product is responsive in the browser, which for our users' phones was the honest answer, not the cheap one.
Five lessons
- Model the domain, not the demo. Room sets and the rate cascade came from watching real operators, not from a feature matrix.
- Explainability is a feature. The source badge on every rate has prevented more support tickets than any FAQ.
- Accounting constraints are design constraints. Gap-free invoice numbering forced transactional discipline everywhere — and the product is better for it.
- Enforce the rules in the system. "You can only break a room set when it's vacant" is a guardrail, not an error message.
- Boring infrastructure ships. Vue, Go and Postgres let a small team build the whole thing without a platform detour.
RentGable is live at rentgable.com — free plan, no card required. If you run rentals and it doesn't fit, we'd genuinely like to hear why.