High-Performance GeoData Visualization with Mapbox and Next.js
Budget: $1,000 – $2,000 USD
GIS/Map Frontend Engineer — Property Data Platform (Mapbox GL JS + Next.js)
We're building a real estate data platform that visualizes property records on interactive maps. We have a working Leaflet/HTML prototype displaying 56,000+ parcel polygons for a California county (color-coded with filtering and popups) and need it rebuilt as a production-grade Mapbox GL JS application inside Next.js.
What we have:
Working Leaflet prototype with 56K+ parcels
GeoJSON and GeoPackage datasets (parcel geometries joined to property records)
Python/geopandas data pipeline producing the source files
Cloudflare hosting environment
What we need built:
Performance & Core Map
Migrate from Leaflet to Mapbox GL JS with vector tiles (Tippecanoe or PMTiles) — current build loads raw GeoJSON which bogs down at scale
Target: 60fps pan/zoom and sub-2-second initial load with 50K+ polygons
Color-coded parcel polygons with toggleable schemes (by dollar amount, property type, year, status)
Interactive popups with property details (ID number, address, dollar amounts, zoning, status)
Map controls: basemap toggle (satellite/street), county boundaries, fullscreen, zoom-to-parcel
Filter Panel & Search
Sidebar with real-time filtering by dollar amount range, property type (residential/commercial/vacant), year, assessed value, acreage, and status — filters update the map instantly
Search by parcel ID or street address with auto-zoom and popup
Spatial Analysis Tools
Click a parcel → highlight all matching properties within a configurable radius
Adjacency detection: identify matching parcels sharing a boundary with the selected parcel
Drawing tools: user draws a polygon, gets aggregate stats for everything inside it (count, total dollar value, average assessed value)
Multi-Region Scaling
Scale from 1 county to multiple counties across multiple states with a state/county selector and lazy-loaded tiles per region
Architecture must support adding new states and counties without code changes — just drop in new tile files and config
Document the tile pipeline so our data team can onboard new regions independently
Mobile
Collapsible filter panel, touch-friendly popups, usable on tablet and phone
Technical Stack:
Next.js 14+ (App Router), React 18+, TypeScript preferred
Mapbox GL JS v3 with vector tiles
Tippecanoe, PMTiles, or equivalent tile pipeline
Cloudflare Pages deployment (must work with existing Cloudflare setup)
Tailwind CSS for styling
Will consume a Supabase/PostGIS API built by a separate backend developer
Required Experience:
3+ years with Mapbox GL JS or MapLibre GL JS
Demonstrated experience rendering 10K+ polygons with smooth performance
Vector tile generation (Tippecanoe, Martin, or similar)
Strong Next.js/React component architecture
Familiarity with GeoJSON, GeoPackage, and Shapefiles
Nice to Have:
PMTiles on Cloudflare R2 experience
PostGIS spatial queries
Real estate or property data background
Map box expert
We're building a real estate data platform that visualizes property records on interactive maps. We have a working Leaflet/HTML prototype displaying 56,000+ parcel polygons for a California county (color-coded with filtering and popups) and need it rebuilt as a production-grade Mapbox GL JS application inside Next.js.
What we have:
Working Leaflet prototype with 56K+ parcels
GeoJSON and GeoPackage datasets (parcel geometries joined to property records)
Python/geopandas data pipeline producing the source files
Cloudflare hosting environment
What we need built:
Performance & Core Map
Migrate from Leaflet to Mapbox GL JS with vector tiles (Tippecanoe or PMTiles) — current build loads raw GeoJSON which bogs down at scale
Target: 60fps pan/zoom and sub-2-second initial load with 50K+ polygons
Color-coded parcel polygons with toggleable schemes (by dollar amount, property type, year, status)
Interactive popups with property details (ID number, address, dollar amounts, zoning, status)
Map controls: basemap toggle (satellite/street), county boundaries, fullscreen, zoom-to-parcel
Filter Panel & Search
Sidebar with real-time filtering by dollar amount range, property type (residential/commercial/vacant), year, assessed value, acreage, and status — filters update the map instantly
Search by parcel ID or street address with auto-zoom and popup
Spatial Analysis Tools
Click a parcel → highlight all matching properties within a configurable radius
Adjacency detection: identify matching parcels sharing a boundary with the selected parcel
Drawing tools: user draws a polygon, gets aggregate stats for everything inside it (count, total dollar value, average assessed value)
Multi-Region Scaling
Scale from 1 county to multiple counties across multiple states with a state/county selector and lazy-loaded tiles per region
Architecture must support adding new states and counties without code changes — just drop in new tile files and config
Document the tile pipeline so our data team can onboard new regions independently
Mobile
Collapsible filter panel, touch-friendly popups, usable on tablet and phone
Technical Stack:
Next.js 14+ (App Router), React 18+, TypeScript preferred
Mapbox GL JS v3 with vector tiles
Tippecanoe, PMTiles, or equivalent tile pipeline
Cloudflare Pages deployment (must work with existing Cloudflare setup)
Tailwind CSS for styling
Will consume a Supabase/PostGIS API built by a separate backend developer
Required Experience:
3+ years with Mapbox GL JS or MapLibre GL JS
Demonstrated experience rendering 10K+ polygons with smooth performance
Vector tile generation (Tippecanoe, Martin, or similar)
Strong Next.js/React component architecture
Familiarity with GeoJSON, GeoPackage, and Shapefiles
Nice to Have:
PMTiles on Cloudflare R2 experience
PostGIS spatial queries
Real estate or property data background
Map box expert
Related categories:
JavaScript
Python
Geolocation
Geospatial
Cloudflare
Next.js
GeoJSON
Tailwind CSS