Homecastr — Hackathon Submission
Changes since 8:30 AM 2/21/2026, covering
main(local) andfeat/observability-integrations(remote) branches.
Inspiration
Every homebuyer asks: "Is this neighborhood going to appreciate?" Traditional tools show yesterday — comps, Zestimates, recent sales. Nobody shows you tomorrow, at the individual home level, with honest uncertainty bands.
We were inspired by how financial markets display probabilistic forecasts (P10/P50/P90 fan charts) and wanted to bring that rigor to real estate. A foundation model trained on every property in Houston generating thousands of scenarios per lot — not a magic number, but a full distribution of outcomes.
What it does
Homecastr is a real-time, interactive property value forecasting platform for Houston, TX:
- Live choropleth map across 350K+ parcels, 5K+ blocks, 1K+ tracts, 150+ zip codes — all switching seamlessly as you zoom
- Fan chart tooltips showing P10–P90 forecast bands from 2019–2030 with historical overlay
- Shift-hover comparison — lock one area, hover another, see both forecasts overlaid
- AI chat agent — ask "What's the forecast for Montrose?" and the map flies there, locks the tooltip, and reports numbers like an analyst
- Reverse geocoding — tooltips now show human-readable names ("Montrose") instead of census IDs ("48201530701")
- Time scrubber — slide 2026–2030 and watch the choropleth update live
- Full observability — Datadog RUM for browser performance, dd-trace for server-side tracing, Braintrust for LLM call logging
How we built it
Today's work spanned two parallel branches:
main — Chat + Forecast Mode Integration
forecastModedetection: Modifiedroute.tsto acceptforecastModefrom the frontend, selecting forecast-specific tools (location_to_area,rank_forecast_areas) instead of H3 tools (location_to_hex)- Unified tool layer: Both chat and Tavus video agent now share
executeTopLevelForecastTool— one server-side executor for geocoding, Supabase queries, and structured results - Map action pipeline:
page.tsx→ChatPanel→route.ts→ tool result →tavus-map-actionevent →ForecastMaptooltip lock - Reverse geocoding: Added Nominatim API integration with client-side caching to
forecast-map.tsx— resolves centroid coordinates to neighborhood names add_location_to_selectiontool: Added to Tavus forecast tool definitions for comparison functionality
feat/observability-integrations — Production Monitoring
- Datadog RUM (
components/datadog-rum.tsx): Browser-side session replay, performance monitoring, error tracking - Server instrumentation (
instrumentation.ts): dd-trace integration for Next.js server-side request tracing - Braintrust LLM logging: Wraps OpenAI client in
route.tsto log every LLM call — inputs, outputs, latency, token usage — for quality monitoring - Config:
instrumentationHook: trueinnext.config.mjs,@datadog/browser-rumpackage
Stack: Next.js 16 + MapLibre GL JS + Supabase Postgres + OpenAI GPT-4o-mini + Tavus CVI + Datadog + Braintrust
Challenges we ran into
Git history bloat: A 968MB
tiger_cachefile made pushes impossible. Solved with an orphan branch (git checkout --orphan fresh-main) to strip history — 968MB → ~50MB.Turbopack cache staleness: A literal
\r\nin source code (from a bad edit) caused a build error that persisted even after fixing the file on disk. Turbopack's aggressive caching required a full dev server restart.Forecast mode tool routing: The chat API only knew about H3 hex tools. Wiring
forecastModethrough the full stack (frontend → ChatPanel → route.ts → tool executor → map action → tooltip) required coordinated changes across 5 files.Census ID readability: Raw IDs like "48201530701" are meaningless. Adding async reverse geocoding with proper caching and loading states required careful state management to avoid re-rendering flicker.
Google Maps StreetView 403: Key works for free metadata calls but returns 403 on paid image requests despite billing showing $0 and all APIs enabled. Diagnosed as a Maps Platform billing activation issue separate from standard GCP billing.
Branch divergence: The observability branch was built against an older
main. Cherry-picking only the new features (Datadog, Braintrust) without regressing recent work (forecast tools, geocoding, tooltip fixes) required file-by-file diff analysis across 12 changed files.
Accomplishments that we're proud of
- Full probabilistic forecasts at the parcel level — P10–P90 uncertainty bands users can actually see
- Natural language → map action pipeline — "Show me River Oaks" pans, zooms, locks tooltip, reports forecast in one smooth interaction
- Sub-second reverse geocoding with client-side cache — "Montrose" instead of "48201530701"
- Production observability stack in one morning — Datadog RUM + dd-trace + Braintrust LLM logging
- 350,000+ properties forecasted with a foundation model, not rule-of-thumb appreciation rates
- Unified tool layer — same executor powers both text chat and Tavus video agent
What we learned
- Turbopack caching can be aggressive — stale artifacts persist after file edits, requiring dev server restarts
- Orphan branches are a powerful git pattern for cleaning up repo history without losing working tree
- Google Maps Platform billing is separate from GCP billing — even with an active GCP billing account, Maps image requests can 403 until the Maps-specific $200/month credit is activated
- Function-calling LLMs work remarkably well as real estate analysts with structured tools and a focused system prompt
- Cherry-picking across diverged branches requires careful file-by-file analysis — wholesale merges introduce regressions
What's next for Homecastr
- Expanding beyond Houston — the foundation model is city-agnostic; next: Dallas, Austin, San Antonio
- Address-level search — type an address, fly to the lot, see its individual forecast
- Portfolio tracking — save properties and track forecasted appreciation over time
- Alert system — notifications when a neighborhood's forecast shifts significantly
- Intention data monetization — high-intent search patterns as a data product for real estate professionals ($49/mo Pro tier)
- MetaProp accelerator — applying the platform to institutional real estate investment analysis
Log in or sign up for Devpost to join the conversation.