PropTech — Listing platform with MLS integration
Built a scalable listing platform with 500+ properties.
The shape of the system. By the numbers.
A production-ready platform capable of processing thousands of listings per hour, with real-time search across normalized multi-source data, automated compliance enforcement, and a complete partner API ecosystem.
What it looks like. Live screens.
The brief. What we shipped.
Needed a modern listing platform with IDX/MLS integration.
Developed a Next.js platform with real-time MLS feed.
40% increase in lead capture, 3x faster listing management.
What was broken. Before we shipped.
The real estate technology space presents unique engineering challenges that traditional web applications never encounter.
Data Fragmentation
MLS providers use varying data schemas, field naming conventions, and value enumerations. A single property attribute like "status" can have dozens of different representations across sources.
Regulatory Compliance
MLS/IDX display rules are complex and vary by region — mandatory disclaimers, agent attribution, freshness requirements, and opt-out enforcement. Non-compliance means data access revocation.
Data Freshness & Scale
Real estate data changes frequently — new listings, price updates, status changes. The platform needs to process thousands of records per sync cycle while maintaining sub-second search.
Search Relevance
Real estate search requires multi-dimensional filtering (price, location, beds, baths) combined with full-text search, geospatial radius queries, and intelligent relevance ranking.
Audit & Traceability
Every data change, moderation action, and access event must be immutably recorded for compliance audits with cryptographic hash-chain verification.
Multi-stage pipeline. Orchestrated by BullMQ.
Each stage independently scalable and fault-tolerant. Backed by Redis queues with retry logic + DLQ.
Ingest
reso-client
RESO Web API with OAuth 2.0, paginated retrieval, rate limiting (5 req/s), checkpoint tracking for resumable syncs.
Normalize
normalizer
Map 100+ vendor fields to canonical schema, type coercion, geocoding, deduplication via fuzzy address matching.
Index
search-indexer
Elasticsearch documents with full-text analysis, geo_point spatial indexing, facet aggregations, zero-downtime reindexing.
Media
media-pipeline
Sharp image processing (thumb/small/medium/large), WebP optimization, S3 encryption, presigned CDN URLs.
Every listing has a state. Always traceable.
A formal finite-state machine governs the listing lifecycle. Every transition is logged, every state is auditable.
Self-service partner ecosystem.
API key management, webhook subscriptions, tiered rate limits, Stripe billing with usage metering.
Free
- → Basic search API
- → 100 req/day
- → No webhooks
Starter
- → Extended API
- → 1,000 req/day
- → Basic webhooks
- → Saved searches
Professional
- → Full API access
- → 10,000 req/day
- → All webhooks
- → Bulk exports
- → Analytics
Enterprise
- → Unlimited API
- → Custom rate limits
- → White-labeling
- → SLA & dedicated support
What it does. End to end.
Enterprise-grade systems for aggregating, normalizing, and serving real estate listings from multiple MLS data sources.
Elasticsearch-Powered Search
Full-text search with fuzzy matching, stemming, synonym expansion. Geospatial radius queries, faceted navigation, autocomplete, and configurable relevance tuning with BM25 scoring.
Multi-MLS Data Pipeline
RESO Web API ingestion with OAuth 2.0, delta sync every 15 minutes, weekly full reconciliation. Normalizes 100+ vendor-specific fields to a canonical schema with deduplication.
11-State Moderation Lifecycle
Formal FSM from DRAFT to TOMBSTONE — including PENDING_REVIEW, ACTIVE, COMPLIANCE_WARNING, COMPLIANCE_FAILED, SUSPENDED, STALE, ARCHIVED, REMOVED, and KILLED states.
Admin Portal & Operations
Real-time dashboard, listing management, compliance scoring, audit log viewer, agent management, job monitoring, media management, and two-factor emergency kill switch.
Partner Ecosystem & Billing
Self-service API key management, webhook subscriptions with retry logic, tiered rate limits (Free to Enterprise), Stripe billing with usage metering and white-label capability.
Infrastructure as Code
Docker/Kubernetes deployment with Terraform-managed AWS (RDS, OpenSearch, S3, ECS). GitHub Actions CI/CD, structured Pino logging, health checks, and SLO monitoring.
The stack. And the reason for each pick.
No exotic tooling. Every choice optimises for systems that survive their second year of production.
Eight layers of defence. Built in.
- ✓JWT authentication with 12-hour expiration for admin sessions
- ✓RBAC with 4 roles: Admin, Moderator, Agent, User
- ✓API key authentication with tiered permissions for partners
- ✓Helmet security headers: CSP, HSTS, X-Frame-Options
- ✓Rate limiting: 100 req/min general, 10/15min auth, 30/min admin writes
- ✓Immutable hash-chain audit trail with tamper detection
- ✓PII masking for unauthenticated requests
- ✓Encryption at rest (S3 SSE) and in transit (TLS)
What they said.
“[ AWAITING_QUOTE ] — once the founder sends a 2-3 sentence quote, drop it here with their photo + role + LinkedIn.”
Want a system like this? We've done it before.
15 minutes, engineer-to-engineer. We'll talk through your system, what we'd flag, and whether we're the right team.