Back to workUI DESIGN · WEB · 2023

Real Estate
Management

Listings, agents, and clients in one searchable dashboard

RoleFull-Stack Developer
StatusShipped

A real estate agency, running on spreadsheets

The agency's listings, agent assignments, and client follow-ups were scattered across shared sheets, email threads, and a slow legacy admin tool. Agents lost hours each week searching for the right property record, and managers had no real view of the pipeline. The task was to consolidate all of that into one searchable dashboard — and to design the interface before a single row of data was wired up.


Scope: full property management system with listings, agent and client tracking, a search-driven dashboard, and a design system that could be reused as the product grew.


Key decisions

Component-driven, not page-driven

I built a small library of primitives — property card, agent tile, search bar, status pill — before assembling screens. This kept visual rhythm consistent across the four main views and meant design changes propagated everywhere with one edit.

Search-first, not browse-first

Real estate inventory grows fast and listings get stale even faster. Search was the highest-leverage interaction, so the search bar lived at the top of every page with persistent filters — not buried in a 'find' menu. Most users landed here with a query already in mind.

UI designed before any data was real

I built the interface first with placeholder data, then wired it to the backend. This separated design decisions from schema decisions, kept the visual pass fast, and meant the UI never waited on database structure. The early placeholder data also made the demo feel real sooner.


Selected views

screenshot
Listings dashboard — filter, sort, search
screenshot
Property detail — gallery, specs, agent card
screenshot
Agents directory — searchable, sortable
screenshot
Clients panel — tracking and status

What shipped

Built and shipped a full real estate management system: a search-first dashboard, a property listing module with filtering and detail views, an agents directory, and a clients panel with status tracking. The interface was designed before the backend was wired, which kept visual decisions independent of schema decisions and meant the UI shipped feeling finished, not provisional.