Skip to content

01 / Product

Expird

Real Estate Intelligence / Agent Productivity

Real estate software for discovering, tracking and converting expired listing opportunities.

RoleFounder / Product Designer / Full-Stack Developer
StackNext.js / React / TypeScript / Neon / Prisma / Clerk / Vercel
StatusClosed beta
TimelineActive development
LivePrivate beta

Product / Dashboard

↔ Drag
The Expird dashboard: counts for expired, terminated, sent-out and back-to-active listings, a quick-actions column, a listings map and a week-over-week expired-listings chart.
Dashboard — listing counts, quick actions, the listings map and the week-over-week expiry trend.

01 / The Problem

A valuable part of the market was being forgotten.

Expired listings can represent a significant source of potential business for real estate agents, but the workflow around them is fragmented.

As an agent myself, I was manually tracking properties that had expired, recording which owners I had contacted, keeping notes, and trying to remember when I needed to follow up.

The problem wasn't finding a single expired listing.

The problem was managing hundreds of opportunities over time.

Without a dedicated system, listings get forgotten, follow-ups are missed, and it becomes difficult to understand which properties are actually worth pursuing.

I wanted one place where that entire workflow could live.

02 / The Idea

I wasn't trying to build a product. I was trying to solve my own problem.

Expird started as a tool for my own real estate business. I was actively targeting expired listings but couldn't find a system that was both purpose-built for the workflow and simple enough to use every day. So I started building my own.

The first version was simply about organization. But once the core system existed, I realized the opportunity was much larger.

Instead of another generic real estate CRM, Expird could become a platform specifically designed around the lifecycle of an expired listing.

ImportDiscoverPrioritizeContactFollow upTrack

Public / Product site

↔ Drag
The public Expird site, headed “Turn Expired Listings Into Closed Deals”, with the dashboard shown beneath it.
The public site — the outward positioning: tracking, managing and converting expired and terminated MLS listings.

I built it for myself.Then I realized I wasn'tthe only one with the problem.

Personal toolClosed beta10 testersNext: brokerage

03 / The Design

Powerful enough to be useful. Simple enough to actually be used.

Real estate agents span a huge range of technical ability. That became one of the most important design constraints in Expird.

The interface needed to provide mapping, property data, ranking, follow-ups, notes and performance tracking without making the product feel complicated. I focused on reducing the number of steps required to complete common actions and keeping the hierarchy predictable throughout the application.

Early testing exposed an important problem: some agents immediately understood the interface, while others found parts of it difficult to navigate. That changed the way I approached the product.

Instead of designing around what I thought was intuitive, I began designing around what different users actually needed.

Decisions

  • 01Prioritize common actions over feature density
  • 02Keep workflows short and predictable
  • 03Allow agents to customize what they track
  • 04Design for different levels of technical confidence

Onboarding / First run

↔ Drag
Expird’s welcome screen, introducing track listings, pipeline view, interactive map, outreach tracking, follow-ups and analytics, with a guided tour offered.
First run — the six things an agent can do, stated plainly, with the guided tour offered rather than imposed.

04 / The Build

A full-stack product built around an unusual data constraint.

Expird is built with Next.js, React, TypeScript, Neon, Prisma, Clerk and Vercel.

The application handles authentication, user-specific listing data, CSV ingestion, property management, follow-up workflows, notes, mapping and performance tracking.

One of my biggest technical learning curves was building the data layer with Prisma and Neon. It was my first project using Neon and my first time connecting the database architecture through Prisma at this scale. Building Expird forced me to think beyond individual UI components and understand how data moves through an entire application.

  1. CSV importingest01
  2. Validation / parsingtransform02
  3. Prismadata layer03
  4. Neon databasestorage04
  5. User listingsrecords05
  6. Map / ranking / follow-upssurfaces06
  7. Agent portalclient07

Feature / Map view

↔ Drag
Expird’s map view: imported listings plotted across Greater Vancouver, the Fraser Valley and Chilliwack, with board and type filters and an expired / terminated / active legend.
Map view — imported listings plotted across Greater Vancouver, the Fraser Valley and Chilliwack, filtered by board and type. The last node of the diagram above, running in the product.

05 / The Challenge

The limitation that changed the product.

The original vision was full automation. The problem: I couldn't rely on an MLS API that provided the expired-listing data Expird needed.

Initially, that felt like a major limitation. If Expird couldn't automatically pull every expired listing, the platform would have to depend on the agent supplying the data.

Instead of abandoning the workflow, I redesigned it around bulk CSV ingestion. Agents can export the listings they want to work with and upload them directly into Expird. The platform parses the file and populates their workspace automatically.

Unexpectedly, the limitation created an advantage. Rather than flooding an agent's account with every available expired listing, the agent controls exactly what enters their pipeline. Their workspace stays focused on the opportunities they've actually chosen to pursue.

Constraint

No suitable MLS API

Rethink

Agent-controlled CSV import

Result

Focused dataset

Product benefit

Less noise / more control

06 / In Product

01 / Listing intelligence

Visual / placeholder

Properties prioritized using relevant surrounding listing and sales data.

02 / Property detail

Visual / placeholder

Property information, notes and contact history.

03 / Follow-up system

Visual / placeholder

Reminders for previously contacted properties.

07 / The Result

From personal tool to closed beta.

Expird is currently being tested in a controlled closed beta with 10 real estate professionals. I intentionally capped the initial group while I continue refining workflows, fixing issues and collecting feedback.

The beta has already influenced the product — particularly around usability and how much complexity different agents are comfortable with.

The next validation milestone is exploring a broader rollout through my brokerage once the product reaches the level of stability I'm looking for.

10

Beta testers (capped)

Closed

Beta status

1 → 10

Personal tool → real users

System / Analytics

↔ Drag
Expird’s analytics view: total listings, send rate, conversion rate and average per day, with listing activity over time and breakdowns by type, board and city.
Analytics — totals, send and conversion rates, listing activity over time, and distribution by board and city.

08 / What I Learned

Building the feature isn't the same as building the product.

Expird changed how I think about software. Early on, I was focused heavily on what the product could do. I would build features based on what I believed agents needed and then show people the result.

Testing it with other agents exposed the weakness in that approach. A feature can work perfectly and still be the wrong experience.

Some users found workflows intuitive while others struggled with the same interactions. That taught me that design and engineering can't be separated — especially when you're building for users with very different levels of technical experience.

If I started Expird again, I would involve users before building as much as I involved them after.

Ask first.Prototype.Test.Then build.

09 / What's Next

Expird isn't finished. It's being proven.

Expird is currently in the final stages of development while the closed beta continues. The immediate focus is stability, improving workflows and incorporating feedback from the current group of testers.

  • 01Native / mobile experienceBring the workflow closer to agents while they're working in the field.
  • 02Deeper MLS automationContinue exploring ways to reduce or eliminate manual data ingestion where access permits.
  • 03PaymentsIntegrate Stripe and establish the subscription infrastructure required for a public product.
  • 04Expanded betaMove beyond the initial testing group and explore deployment across a larger brokerage environment.

The goal is no longer simply to build the tool I needed.It's to build the tool I wish existed when I started.