// the find
zcreativelabs/react-simple-maps
Beautiful React SVG maps with d3-geo and topojson using a declarative api.
A React wrapper around d3-geo and topojson that lets you render SVG world/country maps declaratively. You compose it from primitives — ComposableMap, Geographies, Marker, Annotation — rather than wrestling with d3's imperative API. Aimed at developers who need a choropleth or data overlay map without pulling in all of d3.
The composable component model is genuinely well-designed: you can drop in react-spring for animated transitions or react-annotation for callouts without any adapter code. It pulls in only the d3-geo and topojson-client slices it needs rather than the full d3 bundle, keeping the gzip footprint small. Projection support is whatever d3-geo supports — equal earth by default, but trivially swapped. The ZoomableGroup component handles pan/zoom in SVG coordinates so you don't have to fight browser transforms.
Last commit was August 2024 and the project has been effectively dormant for longer — open issues with no responses, and the docs site examples sometimes 404. You supply your own TopoJSON files, which is fine in principle, but there's no guidance on what projection works with what file, so beginners hit confusing mismatches. No built-in tooltip or popover pattern; you wire that yourself, and the examples don't show a clean way to do it. TypeScript types exist but are shipped as a separate @types package that lags behind, and the main package still has no bundled declarations.