BrokerLoop
In Store ReviewReplaces stale, unverified property portals with a mobile-first broker marketplace where every listing is admin-verified and auto-expires — submitted to Google Play and the App Store.
The problem it solves
Indian property portals are drowning in listings that are expired, duplicated, or were never real in the first place. Seekers waste hours calling on flats that were rented out months ago; honest brokers get buried under the noise their dishonest competitors generate. Nobody in the chain trusts the inventory.
The root cause is structural: no portal enforces a lifecycle on a listing. Once posted, a listing lives forever — so the data rots by design. Fixing the trust problem means fixing the data model, not adding another report button.
What I built
A four-app platform — an Expo React Native mobile app for brokers and seekers, a Next.js admin dashboard, a TypeScript Express API, and a marketing site — built around one idea: listings are stateful objects with an enforced lifecycle. Every listing passes admin verification before going public, carries an expiry set at verification time (30 days for rent, 60 for sale), and is retired by cron the moment it lapses. Search runs on geospatial indexes; brokers get quota-based subscriptions; and the whole thing shipped through EAS production builds into both app stores — including surviving a real Apple review rejection.
(mobile)
UNVERIFIED
verifies
+ expiry set
(geo-indexed)
SOLD / EXPIRED
Key features
- Trustworthy inventory by construction — an admin-approved verification lifecycle (DRAFTED → UNVERIFIED → VERIFIED → EXPIRING → EXPIRED/SOLD) enforced in the data model and by cron, not by moderation whack-a-mole.
- Real mobile product, not a webview — Expo SDK 54 / React Native 0.81 with 16 screens: listing creation and management, search with filter bottom-sheet and price-range slider, favorites, real-time notifications, deep links.
- Auth every user type expects — JWT plus email OTP, phone OTP via Twilio, and Google/Apple sign-in, with broker/admin RBAC and broker verification states (pending / verified / suspended / blocked).
- An admin panel that runs the business — 10 dashboard modules: property verification, broker management, subscriptions and listing quotas, analytics, audit logs, notification broadcasting.
- Store-grade delivery — EAS production build profiles, Play Store production track config, and a cleared Apple review rejection (Guideline 5.1.1) resolved by shipping guest browsing and in-app account deletion.
Tech stack
Impact
Decisions worth talking about
Fix the data model, not the moderation queue
Stale listings aren't a moderation problem, they're a schema problem. Making expiry a property of the listing itself — set at verification, enforced by cron — means the inventory cleans itself. The admin's job shrinks from policing everything forever to one decision per listing.
Quotas before payments
Brokers get subscription plans with listing quotas (rent/sale limits) tracked in the data model — but there's deliberately no payment gateway yet. Monetization mechanics are cheap to add later; retrofitting quota enforcement into a live marketplace is not. The plumbing shipped first.
What an Apple rejection teaches you
Apple rejected the first submission under Guideline 5.1.1 — the app demanded login before showing anything. The fix (guest browsing plus in-app account deletion) made the product better, not just compliant: seekers can now evaluate the inventory before committing an identity to it. Some constraints are good product managers.