All projects

Estait

Desktop software for real estate agencies

Desktop software that brings fragmented property listings and government records into one searchable workspace.

Role
Sole developer
Platform
Desktop SaaS
Status
In production
Stack
Electron, TypeScript, SQLite, Supabase, Stripe
Estait’s Korean property listing workspace, with search filters and collected listing records

Estait’s Korean property listing workspace, with search filters and collected listing records

The listing workspace — an earlier product screenshot from my original portfolio.

Built around the agent’s working day.

Estait grew out of working directly with real estate agents in Seoul. They needed to compare property information spread across listing platforms, floor plans, and government records. I built a desktop application that brings those sources into one place.

I own the product from its data model and interface through to releases, licensing, and payments. I also install it on agencies’ PCs and provide remote support, so I see the practical consequences of the decisions I make.

The workflow came before the architecture.

A listing rarely tells the whole story. Important details live on different pages, the same property can appear more than once, and agents have to keep reconciling information by hand.

My earlier final-year project, Numatas, approached this as a real-time web CRM. Agents rejected the web app in testing. That feedback informed Estait’s local-first desktop design and made the existing workflow central to the product.

The choices behind the product.

01

Keep the working data local

A normalised SQLite database joins listing details, floor plans, orientation, and government records. The desktop application can query the collected information locally; Supabase supports account and subscription services.

02

Integrate with the systems agents already use

For listing platforms without public APIs, I mapped their web data flows and built session-based Puppeteer and Playwright automation. Keeping those integrations working is an ongoing part of maintaining the product.

03

Make search accessible in everyday language

A Gemini-powered chat assistant turns agents’ questions into queries over the locally collected listing data. It sits alongside the table and filters that agents use for direct inspection.

04

Treat distribution as part of the product

Per-device licence checks, Supabase-backed subscriptions, and Stripe payments support the commercial application. Installation and remote troubleshooting are part of my responsibility too.

Shipping is the start of the relationship.

Estait is used by more than 20 paying real estate agencies in Seoul. It is an ongoing product with real support and maintenance responsibilities.

The most useful lesson came before the desktop app: a working implementation is only useful if it fits how people work. Testing Numatas with agents changed the direction of the product. Supporting Estait continues that feedback loop.