finds.dev← search

// the find

open-condo-software/condo

★ 408 · JavaScript · MIT · updated Sep 2026

Condo is an Open Source property management SaaS that allows users to manage tickets, resident contacts, properties, payment tracking, create invoices, and oversee a service marketplace, all while offering an extension system for mini-apps, making it an ideal platform for property management companies and those servicing shared properties.

Condo is a full property-management SaaS built on Keystone.js (Node/GraphQL/Postgres) with a Next.js admin UI, covering tickets, resident contacts, meter readings, billing, and recurring payments. It's aimed at companies that manage or service shared residential/commercial properties and want to self-host rather than pay for a SaaS seat. The domain model is deep — this reads like an actual production system that got open-sourced, not a demo app.

The address-resolution code (Dadata + Google + Pullenti providers with fallback heuristics for exact/coordinate matching and duplicate detection) is real engineering for a genuinely messy problem, not a toy geocoder wrapper. It's organized as a proper monorepo with independently buildable domains (billing, tickets, marketplace mini-apps) and CI that runs semgrep and SonarCloud per subproject, plus husky commit hooks enforcing message conventions. The extension system for third-party mini-apps gives it an actual platform story instead of being a closed CRUD app.

Several of the 'apps' referenced from the root (billing-connector, callcenter, classifiers-api, asterisk-bot, b2b-payments-gateway, announcements, accruals-gateway) are git submodules, not code that ships in this repo — clone it and a meaningful chunk of the marketplace/telephony functionality just isn't there. Local setup requires Postgres 16.4, Redis, optional S3, both Node 24 and Python 3 (for migrations), turborepo, and a custom prepare script that generates env vars and seed users before anything runs — expect a slow first afternoon. SBBOL (Sberbank) OAuth and Dadata/Pullenti are wired into core address and payment flows rather than isolated behind a provider interface, so deploying outside Russia means ripping out vendor-specific code, not just swapping config. There's also a stray generate-prisma-client.js sitting next to a Keystone.js schema convention, which suggests either a leftover script or a framework migration in progress — worth confirming which ORM you'd actually be maintaining before committing to this.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →