Management and billing platformKitnets2026

Manual reminders, Pix transfers checked against the bank statement, and no history became a single system, from listing to receipt, where pausing a bill is still a person's decision.

Client
Role
Product builder: discovery, design, and AI-driven development
Timeline
2 weeks (first complete version)
Disciplines
Product discovery, UX/UI, Design system, Payments
The Kitnets public storefront with search by city, type, and number of guests, icon categories, and a grid of listings with photos and monthly rent

The context

There’s a kind of investor almost no software sees: the individual who built anywhere from one to twenty kitnets (small studio apartments) to live off the rent. Not a real estate agency, no staff. Just a finished construction project and a WhatsApp group with the tenants.

This person’s operation runs entirely by hand. A due-date reminder typed on a personal WhatsApp. A Pix transfer (Pix is Brazil’s instant payment system) checked against the bank statement. A receipt when someone asks. No history.

Kitnets was built for this audience. The thesis fit in one sentence: the operating system for the kitnet, together with the storefront that rents it out. A single product where the landlord lists, signs the lease, bills, tracks late payments, and handles maintenance, and where the tenant has a formal place to pay and to talk. The bill goes out, the payment reconciles, and late payments are calculated on their own. Pausing a bill or settling an agreement is still the landlord’s decision.

It’s my own product, built from scratch. I was the product owner, the designer, and the person who orchestrated development, which was done entirely by AI agents.

The pain

The product has two users, and each one struggles in a different way.

The landlord collects rent on the fly: manual reminders on a personal WhatsApp, Pix transfers checked against the bank statement, no history. What the market offers doesn’t fit: full-service management charges a high percentage, with a per-property minimum that weighs heavily on a small rent; listing portals charge per listing and stop there; real estate agency systems are expensive and built for companies.

The tenant lives on their phone. There’s no duplicate bill, no proof of payment, no formal channel. A lost boleto (a Brazilian bank slip) turns into a late payment, and a late payment turns into an uncomfortable conversation.

And then there’s the prospective tenant, who hunts for kitnets in groups and classifieds with no verification whatsoever.

The research

Before any screen, I ran a market discovery with cross-verification: 36 claims about competitors, pricing, and technical rules, all confirmed. It produced a PRD with 12 feature blocks and 60 acceptance criteria, and a roadmap of 29 epics in three waves.

Three findings changed the product design:

  • The storefront was the differentiator. No competitor aimed at individual landlords had a working public marketplace or a dedicated page per property. None stored the property’s floor plan, electrical, and plumbing, because they all assume a property that was bought, not built.
  • Rent in Brazil calls for a different payment tool. The international platform that bills the software subscription didn’t work for rent (Pix by invitation only, no proper recurrence, a per-transaction cap). Rent went to a Brazilian gateway, with Pix and boleto; the Kitnets subscription stayed on the international one, by card.
  • The legal stance is a product rule. Managing third-party leases may be restricted to licensed brokers, so the platform is software and a payment method, never an intermediary: it doesn’t negotiate and doesn’t charge a brokerage fee.

The decision I consider the most important came later: billing through the platform is optional. The landlord can simply record what they received, with partial payments, refunds, and receipts. On the simplest plan they close the whole financial cycle without any gateway at all. Those who want automation issue a Pix or boleto through the system, and the payment gets reconciled on its own.

The solution

Billing that goes out on its own

The landlord dashboard is where most of the product lives: the kitnet’s technical manual, leases with a due-date calendar, rent adjustments, guarantees, contracts, maintenance, and leads.

The landlord's list of kitnets with the statuses Occupied, Ready to publish, and Draft, and the number of documents for each
Occupancy shows up as the kitnet's own status: activating a lease marks the property as occupied.

Billing is prepaid, with a prorated first month. Whoever issues a Pix or boleto through the system gets the payment reconciled automatically. Late payments are calculated from what was actually received, not from a hand-editable “paid” field.

Late payments panel with two tenants behind, days overdue, installments, and amount outstanding, plus buttons to pause billing and view agreements
Pausing billing is a human decision. Some arrangements are better settled with a conversation than with an automated reminder.

The WhatsApp collection sequence has the safeguards of someone who can’t afford to get the customer’s number banned: gradual warm-up, a time window, an opt-out for the tenant, and email as a fallback. It’s ready and waiting for the number to be paired.

Financial report with a period summary and a results table per kitnet, with income, expenses, and net result
Income minus expenses, per kitnet. It's the question the landlord asks about their own investment.

Later came an annual report for the accountant and a chat per lease, to move the conversation off personal WhatsApp.

The tenant portal

An installable, mobile-first app: lease, installments, bills with a pay button, receipts, notices from the landlord, maintenance requests with photos, and messages.

Three phone screens of the tenant portal: home with shortcuts, bills with a pay button and receipts, and a notice board
Duplicate bills, proof of payment, and messages from the landlord in one place. That's what the tenant was missing.

The most delicate rule here was about privacy. Two tenants of the same landlord can’t see anything about each other, and a former tenant can’t see the new resident or any notices sent after they moved out.

The public storefront

Search follows the pattern of the big lodging marketplaces that everyone already knows how to use: search by city, type, and guests, icon categories, cards with a carousel.

Search for kitnets in São Paulo with four results as cards and a map showing each listing's price
Search combines list and map. The price sits on the pin, because it's the first filter for anyone looking for a kitnet.

A business rule protects the storefront: a city only opens when it has at least 30 listings and at least 5 different landlords. Without the second lock, a single advertiser with thirty fake properties could open an entire city. Until then, the city only shows a waitlist.

Listing page with a property summary, rating, the landlord's introduction, and a sticky contact card with name, WhatsApp, and message
Instead of a booking button, an interest card. The landlord closes the deal, not the platform.

The rating shown is provided by the landlord, and the interface says so; verified reviews from past residents will get a separate field. Public photos are processed versions, stripped of the camera’s location metadata, which could give away the exact address.

Two phone screens: the storefront with search and cards, and a listing page with photos and a sticky bar with the price and an interest button
On mobile, the price and the interest button stay pinned to the bottom while the person scrolls.

The site for landlords

Landlords arrive through a sales page and thirteen institutional pages. Signing up gives seven days free, no card required. On day eight, without a subscription, the listings come off the storefront and the dashboard turns into the billing screen, with the data exportable. The first listing of every new account goes through moderation.

Sales page for landlords with the headline All your kitnets in one place, from listing to receipt, and the free trial and no-commission guarantees
The page's promise is a map of the product: listing, lease, billing, and maintenance.

How it was built

The code was written 100% by AI agents, in a process I designed: every request becomes a task with stages, a “challenger” agent attacks the plan before any code is written, and the PRD, technical plan, and improvements go through human approval. A test suite that tries to access another landlord’s data grew with every epic and blocks delivery if it fails.

The visual design went through two redesigns. The second swapped a generic indigo for a warm editorial tone: serif headings, orange used sparingly, black for the primary action. Because the design system is built on variables, the change reached every screen at once. All copy has existed in Portuguese, English, and Spanish from day one.

Stack: NestJS and PostgreSQL with per-account isolation in the database, dashboards in React, and the storefront in Next.js.

What changed

The first complete version shipped in two weeks. For someone who lives off kitnet rentals, the operation moves to a different place.

What was done by hand. Due-date reminders on a personal WhatsApp, Pix checked against the bank statement, receipts on request, late payments with no record, and listings posted in groups with no verification.

What became automatic. Issuing Pix and boleto with automatic reconciliation, late payments calculated from what was actually received, receipts and duplicate bills in the tenant portal, the report per kitnet and the one for the accountant, photos stripped of location data, and a city that only opens with real density.

Where a person decides. Billing through the platform is optional: the landlord can simply record what they received. Pausing a bill and settling an agreement are their clicks. The landlord closes the deal on the storefront, not the platform. And the first listing of every account goes through moderation.

What I took from this project

A vertical product is made of rules, not screens. A city that only opens with real density, a rating that declares where it comes from, photos without location data, billing that works without a gateway, a former tenant who loses access at exactly the right moment. None of these decisions show up in a screenshot, and they’re what make the product worth trusting.

The other lesson is about AI. Building fast with agents doesn’t make the product role optional; it makes it matter more. The person who decides what goes in, what stays out, and what needs a human in the loop is still the one who understands the problem. The agents wrote the code. The product decisions were mine.

Next projectEvent platform · GlintGlint, event operations that moved out of the spreadsheet and the inbox