PropTech — Listing platform with MLS integration
Built a scalable listing platform with 500+ properties.
Key Achievement
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.
Challenge
Needed a modern listing platform with IDX/MLS integration.
Solution
Developed a Next.js platform with real-time MLS feed.
Result
40% increase in lead capture, 3x faster listing management.
Tech Stack
Project Details
- Timeline
- 8 weeks
- Team
- 2 engineers, 1 designer, 1 QA
- Industry
- Real Estate
Full Case Study
Download the detailed technical case study with architecture diagrams and complete specifications.
Download PDFThe Challenge
Problem Statement
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.
Data Processing
Multi-Stage Pipeline
Orchestrated by BullMQ with Redis-backed queues. Each stage is independently scalable and fault-tolerant.
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.
Capabilities
Key Features Deep Dive
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.
Compliance
11-State Moderation Lifecycle
Every listing passes through a formal finite state machine with controlled transitions ensuring regulatory compliance and data quality.
Stack
Technology Decisions
| Layer | Technology | Rationale |
|---|---|---|
| Runtime | Node.js 20, TypeScript 5.6 | End-to-end type safety across monorepo |
| Frontend | Next.js 14 (App Router) | SSR for SEO, React 18, Tailwind CSS 3.4 |
| Backend | Express.js | Structured middleware stack for REST API v1 |
| Database | PostgreSQL 16 + PostGIS 3.4 | Geospatial queries, relational integrity |
| Search | Elasticsearch 8.15 | Full-text + geo search, faceted navigation |
| Task Queue | BullMQ 5.12 + Redis 7 | Pipeline orchestration, retry logic, DLQ |
| Build System | Turborepo | Monorepo orchestration across 11+ packages |
| Infrastructure | Terraform + Kubernetes | AWS IaC, Helm charts, autoscaling |
| Payments | Stripe | Subscriptions, invoices, usage metering |
Monetization
Partner API Tiers
Tiered subscription model with Stripe billing, usage metering, and self-service dashboards.
Free
- Basic search API
- 100 req/day
- No webhooks
Starter
- Extended API
- 1,000 req/day
- Basic webhooks
- Saved searches
Most Popular
Professional
- Full API access
- 10,000 req/day
- All webhooks
- Bulk exports
- Analytics
Enterprise
- Unlimited API
- Custom rate limits
- White-labeling
- SLA & dedicated support
Security Architecture
- 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)
Let's Talk
Ready to build something similar?
Whether it’s PropTech, data pipelines, or compliance-sensitive platforms — let’s discuss your project.