
ACRIS Explorer
ACRIS Explorer.built on real ingestion pipelines and stable identifiers
A production-grade geospatial system for ingesting, persisting, and exploring New York City property and legal records.
Technical Thesis.
ACRIS Explorer treats public real-estate records as a long-lived data system rather than a static dataset. The architecture emphasizes correctness, resumable ingestion, stable identifiers, and strict geospatial contracts so the frontend remains predictable as data volume grows.
Visual_Manifest // Technical_Snapshots

Map-first exploration backed by persisted data
The map loads properties dynamically based on visible bounds using backend bounding-box queries against Postgres. The frontend never calls external APIs directly, ensuring consistent behavior and performance as data scales.

Resumable ingestion jobs per borough
ACRIS data is ingested through resumable, borough-scoped jobs that track cursor state and failure conditions. This allows ingestion to pause, resume, and recover safely without corrupting downstream queries.

Stable identifiers across backend and Mapbox
Each property uses a stable BBL identifier that survives ingestion, querying, and map rendering. This guarantees Mapbox feature-state remains consistent across pan, zoom, and data refreshes.

Strict GeoJSON contracts for reliable rendering
All geospatial endpoints return strict GeoJSON FeatureCollections, even when empty. This enforces a clean contract between the backend and Mapbox and prevents runtime rendering errors.
Functional Proof.
Detailed logic applied to real-world production needs.
using bounding-box queries instead of lists
Exploring properties spatially
Users explore neighborhoods naturally by panning and zooming the map, while the backend efficiently serves only the properties within the visible bounds.
Technical_Focus
- Bounding-box SQL queries
- GeoJSON generation
- Map-driven data loading
Outcome
Large datasets remain fast and intuitive to explore without overwhelming the UI.
Media_Signal // Pending
DEPLOYMENT_IN_PROGRESS
SYSTEM_LOG: The visual documentation for Exploring properties spatially is currently being structured and staged for production deployment. Check back for full structural reveal.
with resumable, fault-tolerant jobs
Persisting public datasets safely
Public datasets are ingested incrementally with cursor-based job state so failures can be retried without duplicating or corrupting data.
Technical_Focus
- Job state machines
- Transactional inserts
- Failure recovery
Outcome
Data integrity is preserved even under partial failures or restarts.
Media_Signal // Pending
DEPLOYMENT_IN_PROGRESS
SYSTEM_LOG: The visual documentation for Persisting public datasets safely is currently being structured and staged for production deployment. Check back for full structural reveal.
using stable feature identifiers
Reliable map interactions at scale
Hover and selection state remain consistent across frequent data refreshes thanks to stable backend identifiers propagated into GeoJSON feature IDs.
Technical_Focus
- Mapbox feature-state
- Stable BBL identifiers
- Guarded interaction handlers
Outcome
Map interactions feel calm and predictable instead of flickering or resetting.
Media_Signal // Pending
DEPLOYMENT_IN_PROGRESS
SYSTEM_LOG: The visual documentation for Reliable map interactions at scale is currently being structured and staged for production deployment. Check back for full structural reveal.
for long-term system evolution
Separating ingestion from presentation
Ingestion, querying, and UI concerns are cleanly separated so new data sources or frontend features can be added without destabilizing existing behavior.
Technical_Focus
- Repository-service-controller layering
- Explicit API contracts
- Frontend-backend decoupling
Outcome
The system can evolve safely as requirements grow.
Media_Signal // Pending
DEPLOYMENT_IN_PROGRESS
SYSTEM_LOG: The visual documentation for Separating ingestion from presentation is currently being structured and staged for production deployment. Check back for full structural reveal.
Stack_Manifest
Explicit tradeoff
"Rather than optimizing for instant demo data or client-side fetching, ACRIS Explorer prioritizes correctness, durability, and production-safe ingestion, accepting additional backend complexity to ensure long-term reliability."