Maps Frontend
A ground-up React/TypeScript rewrite of the public-facing trail-finder map at maps.clevelandmetroparks.com, replacing a decade-old jQuery application at the same production URL — designed and built solo, including the full production cutover.
Get Directions across four travel modes with routing that prefers the park system's own trail network, client-side full-text search, and a project-wide accessibility contract enforced by automated ESLint and Playwright/axe-core testing gates.
Engineered a two-track URL-state system that separates rapid map-position updates from React Router-driven feature-selection state, a six-provider composition graph with hooks that throw if used outside their provider, and a parallel mobile bottom-sheet UI with iOS safe-area and gesture handling built alongside the desktop sidebar.
- React 18
- TypeScript
- Vite
- Mantine v6
- Mapbox GL / react-map-gl
- TanStack Query v4
- FlexSearch
- React Router v6
- Playwright + axe-core
Visit: maps.clevelandmetroparks.com