Skip to content
Back to projects
In progress

Mirador — AI-native home-buying copilot

A LangGraph agent with 19 tools and human confirmation before any payment, over a transactional backend with hard guarantees and a 3D viewer you can walk through.

What it is

Mirador takes a homebuyer from “I want to reserve” to a signed contract and a receipt, by talking. A LangGraph agent orchestrates 19 tools over the same services the REST API uses: it searches the real inventory, locks the unit, drafts the contract, creates the payment and issues the receipt.

The name is not decoration. A mirador is the vantage point you look out from, and that is what the product does: you look out of your future flat’s window before the flat exists.

What separates it from a demo

It stops before charging you. Before confirming a payment the graph raises an interrupt() and waits for human confirmation. It is not an instruction in the prompt — which a model can ignore — but a halt of the graph itself: without the confirmation it does not continue.

Hard guarantees in the backend. The logic lives in the services, not in the prompt, and REST and agent call the same ones. Against double-booking there is a triple defence:

  1. Atomic lock inside a transaction, with SELECT … FOR UPDATE and a conditional UPDATE on the unit.
  2. A partial unique index in the database: two active deals on the same property are impossible even if everything else fails.
  3. Confirming the payment requires the lock to still be alive.

On top of that: Stripe reconciliation via webhook for when the synchronous confirmation is lost, idempotency keys, lock TTL with a background sweeper, and a full audit trail of every event.

The viewer

You arrive flying in from the sky over the real neighbourhood: the plot on the IGN orthophoto —the same aerial imagery the Spanish cadastre uses— and the buildings of Alzira as real 3D volumes from OpenStreetMap, via Cesium Ion. The building is procedural, generated from the inventory, carrying live transactional state: you see what is free and what is taken. From there you cut through floors, pick a unit, look out of its window and walk through it in first person.

The agent drives the camera too: when it recommends a unit, the viewer flies to it.

Privacy

Agent observability goes through LangSmith with PII redacted at source — email and phone are stripped before leaving the process. The reason is concrete: LangSmith offers no way to delete runs, so any personal data sent there would be impossible to erase on request.

Stack: TypeScript · LangGraph.js · Hono · PostgreSQL/Drizzle · React 19 · react-three-fiber · LangSmith.