
MapaTrhu · Datenprodukt
MapaTrhu bündelt Angebote aus mehreren Portalen, Preisentwicklung, Lagekontext und Vergleich in einem Arbeitsbereich für den Immobilienkauf.
Decision journey
The selected market stays put when a user opens a listing from the map. Price, locality and comparable offers load progressively, each one arriving at the moment it can inform the next decision.

Scroll the diagram horizontally.
Listings from multiple portals share one map. Viewport and filters update the results together, keeping the visible market relevant.
The detail keeps the selected area in context and adds source, price, history, attributes, and photos without returning to a stack of portal tabs.
The price map compares districts and localities through a consistent price-per-square-metre view, giving one asking price a market frame.
Seventeen optional layers add transport, parks, schools, demography, risks, services, and analytical signals directly to the map.
The estimate uses comparable price per square metre, time weighting, and data availability. It communicates context and confidence, not a guaranteed value.
Technologie
01
Eine Immobilie erscheint auf mehreren Portalen, mit unterschiedlichen Texten und ohne durchgängigen Verlauf. Käufer setzen ihr Bild des Marktes aus offenen Tabs, Tabellen und Eindrücken zusammen.
“Eine Kaufentscheidung braucht mehr als ein Foto und einen Angebotspreis.”



02
Die Karte ist der zentrale Arbeitsbereich. Beim Bewegen und Filtern ändern sich Punkte, Ergebnisse und Lageebenen gemeinsam, damit der Zusammenhang zwischen Angebot und Ort erhalten bleibt.



03
Die Preiskarte vergleicht Bezirke und Lagen. Im Detail kommen Preisentwicklung, Erreichbarkeit und Umgebung dazu. Eine Schätzung ist keine Gewissheit. Jede Zahl nennt Quelle und Vertrauensniveau.



04
Angebote lassen sich speichern, per Benachrichtigung verfolgen und nebeneinander vergleichen. Einheitliche Angaben für jede Immobilie machen aus einem Gefühl eine überprüfbare Shortlist.




05
Sammlung und Deduplizierung laufen auf PostgreSQL und FastAPI. Die Karte ist MapLibre in React. Rise verantwortet Produkt, Design, Entwicklung und Betrieb, so wachsen Oberfläche und Daten gemeinsam.

Design and engineering
A listing keeps its origin, its identity and its price context through every movement of the map. Collection, calculation and public reads sit in separate layers so none of them slows the others down.
We mapped buyer decisions and the information needed from the first filter through the shortlist.
We compared portal payloads and preserved the source of every listing and subsequent change.
We designed a shared listing model and a deterministic key for linking the same property across sources.
We separated raw capture, identity, calculations, and public reads so each can change and be checked independently.
We profiled map queries and added a read model, caching, and scheduled jobs around real viewport use.

Scroll the diagram horizontally.
React 19, TypeScript 6, Vite 8, MapLibre 5, TanStack Query, and Zustand keep filters, viewport, detail, and comparison in one state.
FastAPI in platform_v2 registers 81 route modules. Seventy-three services and raw psycopg3 separate domain decisions from SQL reads.
aiohttp collectors read about 26 portals over HTTP, preserve the raw record, and deterministically link the same listings without losing provenance.
PostGIS 3.5 serves spatial selections, 17 layers, and an H3 resolution-7 grid. pgvector adds text retrieval and similarity.
PostgreSQL 17, Redis 8, materialized views, systemd jobs, Docker, Caddy, and imgproxy support fast reads and regular data refresh.
Listing data pipeline
Raw portal data never reaches the map. A record keeps its source, gets normalized, is linked to the property it duplicates and picks up calculated signals. Only then does it enter the read model.

Scroll the diagram horizontally.
HTTP collectors for about 26 portals store the raw response and keep downloading separate from later processing.
Parsing and geocoding turn different names, prices, areas, addresses, and coordinates into the shared listings working model.
A SHA-1 key built from country, rounded price and area, city, street, and rooms links sources while preserving their history.
A cohort price-per-square-metre z-score and ROI methodology populate property_metrics_current. The output remains an estimate with an explained source.
FastAPI, read models, and two-tier caching serve the MapLibre map, 17 layers, details, alerts, and saved searches.
Ein ähnliches Ziel, passend zu Ihrem Bedarf