Skip to content

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

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

CondoStatus — condo management SaaS built from scratch