finds.dev← search

// the find

visgl/react-map-gl

★ 8,452 · TypeScript · NOASSERTION · updated Apr 2026

React friendly API wrapper around MapboxGL JS

React wrapper around Mapbox GL JS and MapLibre GL JS that maps the imperative GL API onto React's declarative model. Maintained by the vis.gl OpenJS Foundation (the same org behind deck.gl), which means it's not an abandoned side project. Target audience is React developers who need interactive maps with vector tiles without wrestling with imperative GL lifecycle themselves.

Dual backend support — swap between Mapbox and MapLibre with a single import change (`react-map-gl/mapbox` vs `react-map-gl/maplibre`), which is genuinely useful if you want to escape Mapbox's licensing later. The `useMap` hook and `MapProvider` give you imperative map access without prop drilling, which is the right call. Example coverage is unusually thorough: clusters, draw-polygon, deckgl overlay, side-by-side, terrain — all with working TypeScript. Being part of vis.gl means it integrates cleanly with deck.gl for serious data visualization work.

Last push was April 2026 but there's no recent changelog activity visible, and the Mapbox GL JS licensing mess (BSL since 2021) is baked into the dependency chain — if you use the Mapbox flavor, you're subject to Mapbox's terms whether you realize it or not. The abstraction occasionally leaks: anything involving custom GL layers or map style mutations still requires calling the underlying map instance directly via `useMap`, at which point you're back in imperative territory. No built-in clustering logic — the cluster examples wire up Supercluster manually, which is fine but means more boilerplate than competitors like react-leaflet-cluster.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →