BlockEstate — multi-tenant real-estate listing platform
A multi-tenant listing and inquiry platform for agents and brokerages: listing intake, agent dashboards, lead routing and a document workflow.
The shape of the system. By the numbers.
A multi-tenant listing platform with validated listing intake, search, an 11-state moderation lifecycle, agent dashboards and lead routing, with each brokerage isolated as a tenant.
What it looks like. Live screens.
The brief. What we shipped.
Agents and brokerages needed one platform that keeps each agency's listings and leads separate on shared infrastructure, gets clean listing data in, and routes every inquiry to the right agent with its documents.
A multi-tenant listing and inquiry pipeline: validated listing intake, a moderation lifecycle, agent dashboards, lead routing and a document workflow, with each brokerage isolated as a tenant.
The MVP shipped in 6 weeks.
What was broken. Before we shipped.
The real estate technology space presents unique engineering challenges that traditional web applications never encounter.
Tenant Isolation
Many agencies share one platform, but no agency may ever see another agency's listings, leads or documents.
Listing Data Quality
Listings arrive with inconsistent fields, addresses and statuses. They must be validated and normalised before they can be searched or moderated.
Listing Freshness
New listings, price updates and status changes happen constantly, and stale listings must be caught before buyers act on them.
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.
Intake
listing-intake
Agents submit listings through their dashboard; each submission is validated against the listing schema before it enters moderation.
Normalize
normalizer
Type coercion, geocoding and deduplication via fuzzy address matching, so one property is never listed twice.
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.
The systems behind listing intake, moderation, search and lead routing for many agencies on one platform.
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.
Listing Intake Pipeline
Agent submissions are validated, normalised, geocoded and deduplicated before moderation, with each brokerage's data isolated as its own tenant.
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)
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.