TERRAMAP.BG — Bulgarian Real Estate Price Map
Interactive heatmap platform with 115,000+ listings from 5 sources, refreshed daily. 28 districts with neighborhood-level precision, historical charts, saved searches with email alerts, and 145+ AI-generated market reviews. Formerly Realm.bg.
About the Project
TERRAMAP.BG (formerly Realm.bg) is Bulgaria's real estate price intelligence platform — an interactive map showing average prices per square meter across all 28 districts with neighborhood-level polygon precision. Over 115,000 active listings from five sources (homes.bg, alo.bg, imot.bg, imoti.net, bazar.bg) are crawled, deduplicated, geocoded against OSM boundaries, and refreshed every morning — fully automated.
Technologies
- Vanilla HTML/CSS/JS frontend — zero frameworks, single-file architecture
- Leaflet + markercluster for the interactive map, Chart.js for price history
- PHP 8 (LiteSpeed) backend with file-based JSON storage — no database
- Python data pipeline: requests + BeautifulSoup, Nominatim geocoding, point-in-polygon validation against 28 GeoJSON boundary sets
- GitHub Actions CI/CD: daily crawl, weekly AI market reviews (per-region), saved-search notifications, social token refresh
- Cloudflare CDN + Hostinger origin
Features
- Crypto-style price heatmap with neighborhood polygons
- Filters encoded in shareable URLs (transaction type, property type, price ranges, sources, time windows)
- Saved searches with double opt-in email alerts (daily digests)
- 145+ auto-generated blog analyses: weekly market reviews + per-city price breakdowns
- AI-search ready: llms.txt, Schema.org Dataset markup, AI crawler access
What Makes It Special
The whole platform runs on a zero-budget stack — static hosting, PHP, cron, and flat JSON files — yet handles 117,000+ scraped listings per day with automated dedup, water-zone geocoding masks, and reverse polygon calibration. Proof that thoughtful engineering beats infrastructure spend.
Have a similar project in mind?
Tell us — we'll scope it and return a quote within 2 business days.



