/home›/work›real estate
Real EstateLIVE · IN PRODUCTIONPropTech / Real Estate Technology

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.

TIMELINE · 6 weeks (MVP)TEAM · 2 engineers, 1 designer, 1 QAINDUSTRY · Real Estate
Get a similar plan →
[ 01.0 / SHIPPED & LIVE ]
KEY NUMBERS

The shape of the system. By the numbers.

25+
API Endpoints
22+
DB Migrations
11
Moderation States
11+
Packages
[ KEY_ACHIEVEMENT ]

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.

[ 02.0 / SCREENSHOTS ]
FROM PRODUCTION

What it looks like. Live screens.

BlockEstate — multi-tenant real-estate listing platform — screenshot 1
[ 03.0 / WHAT_WE_BUILT ]
THE STAKES

The brief. What we shipped.

[ CHALLENGE ]

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.

[ SOLUTION ]

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.

[ RESULT ]

The MVP shipped in 6 weeks.

[ 04.0 / PROBLEM_STATEMENT ]
THE GAPS WE TARGETED

What was broken. Before we shipped.

The real estate technology space presents unique engineering challenges that traditional web applications never encounter.

01

Tenant Isolation

Many agencies share one platform, but no agency may ever see another agency's listings, leads or documents.

02

Listing Data Quality

Listings arrive with inconsistent fields, addresses and statuses. They must be validated and normalised before they can be searched or moderated.

03

Listing Freshness

New listings, price updates and status changes happen constantly, and stale listings must be caught before buyers act on them.

04

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.

05

Audit & Traceability

Every data change, moderation action, and access event must be immutably recorded for compliance audits with cryptographic hash-chain verification.

[ 06.0 / DATA_PIPELINE ]
FOUR-STAGE FLOW

Multi-stage pipeline. Orchestrated by BullMQ.

Each stage independently scalable and fault-tolerant. Backed by Redis queues with retry logic + DLQ.

STAGE 01

Intake

listing-intake

Agents submit listings through their dashboard; each submission is validated against the listing schema before it enters moderation.

STAGE 02

Normalize

normalizer

Type coercion, geocoding and deduplication via fuzzy address matching, so one property is never listed twice.

STAGE 03

Index

search-indexer

Elasticsearch documents with full-text analysis, geo_point spatial indexing, facet aggregations, zero-downtime reindexing.

STAGE 04

Media

media-pipeline

Sharp image processing (thumb/small/medium/large), WebP optimization, S3 encryption, presigned CDN URLs.

[ 07.0 / MODERATION ]
11-STATE FSM

Every listing has a state. Always traceable.

A formal finite-state machine governs the listing lifecycle. Every transition is logged, every state is auditable.

DRAFTPENDING_REVIEWACTIVECOMPLIANCE_WARNINGCOMPLIANCE_FAILEDSUSPENDEDSTALEARCHIVEDREMOVEDKILLEDTOMBSTONE
[ 08.0 / PARTNER_API ]
FOUR TIERS

Self-service partner ecosystem.

API key management, webhook subscriptions, tiered rate limits, Stripe billing with usage metering.

TIER

Free

  • → Basic search API
  • → 100 req/day
  • → No webhooks
TIER

Starter

  • → Extended API
  • → 1,000 req/day
  • → Basic webhooks
  • → Saved searches
RECOMMENDED

Professional

  • → Full API access
  • → 10,000 req/day
  • → All webhooks
  • → Bulk exports
  • → Analytics
TIER

Enterprise

  • → Unlimited API
  • → Custom rate limits
  • → White-labeling
  • → SLA & dedicated support
[ 09.0 / CAPABILITIES ]
FEATURE DEEP DIVE

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.

[ 10.0 / TECH_DECISIONS ]
WHY THESE CHOICES

The stack. And the reason for each pick.

No exotic tooling. Every choice optimises for systems that survive their second year of production.

LayerTechReason
RuntimeNode.js 20, TypeScript 5.6End-to-end type safety across monorepo
FrontendNext.js 14 (App Router)SSR for SEO, React 18, Tailwind CSS 3.4
BackendExpress.jsStructured middleware stack for REST API v1
DatabasePostgreSQL 16 + PostGIS 3.4Geospatial queries, relational integrity
SearchElasticsearch 8.15Full-text + geo search, faceted navigation
Task QueueBullMQ 5.12 + Redis 7Pipeline orchestration, retry logic, DLQ
Build SystemTurborepoMonorepo orchestration across 11+ packages
InfrastructureTerraform + KubernetesAWS IaC, Helm charts, autoscaling
PaymentsStripeSubscriptions, invoices, usage metering
[ 12.0 / SECURITY ]
HARDENED

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)
[ NEXT_STEP ]

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.