2025 — hoje · Product, architecture and code
CondoStatus
CondoStatus is a B2B condo management SaaS I built solo, from first commit to recurring revenue, running in production with real building managers.
Stack
- Next.js
- Supabase
- PostgreSQL/RLS
- Asaas
- Tailwind
- Vercel
Links
The problem
Condo management in Brazil is a permissions problem before it's a UI problem: each manager sees only their own building, each resident only what concerns them, and a leak between tenants isn't a bug — it's an incident. On top of that the product had to actually charge money, and charging in Brazil means Pix, boleto and service invoices, not just international cards.
The approach
Multi-tenant with Row Level Security on Supabase's Postgres, so isolation lives in the database and not in the application layer — even a badly written query can't cross the tenant boundary. For payments I chose Asaas over Stripe: native Pix Automático, recurring boleto and Brazilian e-invoicing are non-negotiable in local B2B, and no international gateway covers all three. The model is trial-before-billing, with subscription state reflected across the whole interface.
What happened
The product is live and billing. The most instructive chapter came after launch: mobile INP was at 1,472ms on the dashboard and building routes — nearly a second and a half between tap and response. I traced it to a `mousedown` listener in the user menu, with the twist that a crypto browser extension was contaminating Chrome's performance traces and pointing me the wrong way. The lesson became a rule: discard browser profiles with extensions before trusting a trace.
Project facts
Multi-tenant with isolation in the database (RLS), not the app layer
Asaas chosen over Stripe for Pix Automático, boleto and e-invoicing
Trial-before-billing with access until the end of the paid period
1,472ms mobile INP traced to a single mousedown listener
Invites, per-building permissions, manager and resident roles
Tell me what you want to build.
A 30-minute conversation about the problem usually settles more than three email threads about technology. If it isn't for me, I'll say so right away.
andre@andrebordignon.dev · Brasília, Brasil