Beacon Realty
Residential brokerage · 4 markets · ~120 agents
Pocket CRM that works in basements — offline-first iOS in 8 weeks
A pocket CRM for residential brokers, with offline-first IDX search.
A residential brokerage wanted their agents to stop juggling three apps in the field. We shipped a native iOS app that wraps their CRM, IDX listings search, and a daily prep digest, with an offline-first cache so it works in basements and elevators.
Today · 17 Apr
Broker CRM
Swift 6 · 53
24-day streak
SwiftUI · 54
25-day streak
SwiftData · 55
26-day streak
Combine · 56
27-day streak
- Industry
- Real Estate
- Timeline
- 8 weeks
- Team
- 3
- Service
- iOS
- Project tier
- iOS App / $24,995
The Problem
What was broken.
Agents were copy-pasting between the CRM web app, the IDX listings portal, and a notes app on their phones. Showings happen in basements with no signal. Listings change throughout the day and stale data was a daily embarrassment.
Our Approach
How we framed it.
SwiftUI + SwiftData for an offline-first cache. Listings sync in the background via APNs silent pushes when the IDX feed updates. CRM mutations queue locally and sync when connectivity returns. The 'today' screen is the home screen — every appointment, every prep card, every recent buyer note in one scroll.
Capability proof
What this case demonstrates.
This case makes the hidden work visible: strategy, architecture, delivery control, quality evidence, and handoff.
01 / Product judgment
Problem framed before UI
Agents were copy-pasting between the CRM web app, the IDX listings portal, and a notes app on their phones. Showings happen in basements with no signal. Listings change throughout the day and stale data was a daily embarrassment.
02 / Technical depth
8 stack decisions
Swift 6, SwiftUI, SwiftData, Combine, MapKit, Push (APNs)
03 / Delivery discipline
5 delivery checkpoints
Field shadowing + IA / Today screen + sync model / IDX search + map
04 / Handoff quality
6 shipped artifacts
Native iOS app on iPhone + iPad / Today screen with appointments + buyer prep / IDX listings search + MapKit map
Production artifacts
Inspect the work behind the visible result.
Each case exposes the surfaces, systems, evidence, and handoff package that make the shipped product usable after launch.
Experience layer
Buyer or user surface
Native iOS app with offline-first SwiftData cache, silent-push background listing sync, and a Today screen that surfaces appointments + buyer prep in one tap.
Proof 01
A pocket CRM for residential brokers, with offline-first IDX search.
Proof 02
Spent two days riding along with brokers. Wrote the information architecture against what they actually do...
Proof 03
Native iOS app on iPhone + iPad
Production signals
Observable
Errors, logs, alerts, or dashboards included.
Release-ready
Deployment or store-release path included.
Before / after · product UI mockup
Industry · Real Estate
Before:Brokers carried 3 binders to walk-throughs; MLS sync ran nightly via FTP.
After:Native iOS app with offline-first SwiftData cache, silent-push background listing sync, and a Today screen that surfaces appointments + buyer prep in one tap.
How the engagement ran.
- 01Week 1-2
Field shadowing + IA
Spent two days riding along with brokers. Wrote the information architecture against what they actually do, not what the web app exposes.
- 02Week 3-4
Today screen + sync model
Built the home screen first. Implemented SwiftData schema and the sync model that resolves CRM mutations when offline.
- 03Week 5-6
IDX search + map
Listings search, MapKit annotations clustered by neighborhood, deep-linkable from CRM contacts.
- 04Week 7
Push + analytics
Silent-push wiring + analytics events for the agents who opted in.
- 05Week 8
TestFlight ramp + App Store
TestFlight to 30 brokers in two markets. App Store submission cleared first review.
- 1
Week 1-2
Field shadowing + IA
Spent two days riding along with brokers. Wrote the information architecture against what they actually do, not what the web app exposes.
- 2
Week 3-4
Today screen + sync model
Built the home screen first. Implemented SwiftData schema and the sync model that resolves CRM mutations when offline.
- 3
Week 5-6
IDX search + map
Listings search, MapKit annotations clustered by neighborhood, deep-linkable from CRM contacts.
- 4
Week 7
Push + analytics
Silent-push wiring + analytics events for the agents who opted in.
- 5
Week 8
TestFlight ramp + App Store
TestFlight to 30 brokers in two markets. App Store submission cleared first review.
Deliverables
What we shipped.
- ✓Native iOS app on iPhone + iPad
- ✓Today screen with appointments + buyer prep
- ✓IDX listings search + MapKit map
- ✓Offline-first CRM with mutation queue
- ✓Silent-push background sync
- ✓TestFlight cohort + App Store release
Outcomes.
engagement targetsPlan: offline-first: showings work in basements and parking garages
Plan: background listing sync via silent push notifications
Plan: today screen surfaces appointments + buyer prep in one tap
Plan: testFlight cohort of 30 brokers across two markets
Plan: app Store submission cleared on first review
Honest challenges
What we got wrong (or almost wrong).
The pretty version of any case study skips this part. We don't.
- 01
SwiftData migrations bit us once when adding a relationship; documented the migration pattern in the team handbook for future apps.
- 02
IDX feed had inconsistent geocoding — we added a fallback to a local geocoder for stale records.
- 03
App Store review flagged a privacy nutrition label inconsistency on the contact-sync feature — fixed and resubmitted same day.
In our own words
Two days riding shotgun on actual showings rewrote the spec. The web app exposed everything; the agents needed three things in one tap. Designing the home screen first, before any sync code, kept the rest of the app honest.
From the Hayaiti team
Engineering · design · security
Technical blueprint
How the work holds together.
Buyers should see that the visual layer is backed by architecture, quality gates, and operational ownership.
Experience
1Application
2Data
3Operations
4Security
5Stack used
8 technologiesRelated
Other cases like this.
Want a case study like this?
Want this level of production quality on your project?
Send a short brief and we'll reply with scope, timeline, price direction, and the first technical recommendation.