finds.dev← search

// the find

smeijer/leaflet-geosearch

★ 1,128 · TypeScript · MIT · updated Mar 2026

A geocoding/address-lookup library supporting various api providers.

A geocoding plugin for Leaflet that wraps 15+ different geocoding APIs behind a uniform interface. It also works standalone without Leaflet, so you can drop it into any form or custom map component. If you need to add an address search box to a map, this is the obvious starting point.

The provider abstraction is well-designed — every service returns the same `{x, y, label, bounds, raw}` shape, so switching from OpenStreetMap to Mapbox is a one-line change. Zero dependencies is a genuine win for a library in this space. The autocomplete implementation with configurable debounce delay is thoughtful — it won't hammer the geocoding API on every keystroke. Test coverage per provider is solid: each one has its own spec file with recorded JSON responses, so regressions in API response parsing get caught without live network calls.

The README still references IE polyfills and babel-polyfill in 2026, which signals maintenance energy has been low. The Gatsby-based doc site is baked into the repo alongside the library source, which makes the project structure cluttered and the build setup heavier than it needs to be. There's no built-in caching or deduplication — if you have multiple components using the same provider, each one makes its own requests. The `GeoSearchControl` Leaflet integration has no TypeScript types for its options object in the README examples, and the `// @ts-ignore` in the react-leaflet example is a red flag that the Leaflet type integration is shaky.

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 →