High-Speed Property Portal & MLS Aggregation
Key Business Outcomes
200ms Search Time
Complex map queries that previously crashed the server now return in under 200 milliseconds.
250,000+ Listings
Synced flawlessly across 4 different MLS boards with zero data corruption.
300% SEO Growth
Next.js Server-Side Rendering ensured all 250k property pages were instantly indexed by Google, tripling organic traffic.
The Challenge
A large regional real estate brokerage wanted to compete directly with Zillow by launching their own consumer-facing property portal.
Their initial attempt, built on WordPress with a generic real estate theme, was a complete disaster. The site attempted to sync 250,000 active property listings from 4 different MLS (Multiple Listing Service) boards via RETS. The standard MySQL database choked entirely when users tried to perform complex geospatial map searches (e.g., "Show me all 3-bedroom houses within this hand-drawn polygon on the map"). Page load times exceeded 12 seconds, rendering the site unusable on mobile devices.
Our Technical Solution
Vanavya Tech completely re-architected the platform, moving away from traditional relational databases for the search layer and implementing an Enterprise Search architecture.
We built a custom Node.js data pipeline that connects to the various MLS APIs (RESO Web API/RETS). Every night, it ingests, cleans, and normalizes the chaotic MLS data.
The critical innovation was piping this cleaned data directly into Elasticsearch and PostGIS. Elasticsearch is specifically designed to handle millions of documents and return search results in milliseconds. We utilized PostGIS (a geospatial extension) to handle the complex map logic. Now, when a user draws a custom shape on the React-powered Mapbox frontend, the backend instantly calculates exactly which properties fall inside that geometry and returns the pins in under 200 milliseconds.
System Architecture
Technical FAQs
Why couldn't standard MySQL handle the map search?
Standard relational databases like MySQL evaluate data row by row. If you ask it to find coordinates inside a polygon among 250,000 rows, it has to do complex math on every single row, which is incredibly slow. Elasticsearch and PostGIS use specialized spatial indexes (like R-Trees), allowing them to instantly eliminate 99% of the map and only calculate math on the relevant area.
How do you handle the massive amount of property images?
We do not save images to the database or the web server. Our Node.js pipeline downloads the high-res images from the MLS, automatically compresses them into modern WebP formats, and uploads them directly to AWS S3. They are then served to the user globally via the AWS CloudFront CDN, ensuring images load instantly regardless of the user's location.