finds.dev← search

// the find

Turfjs/turf

★ 10,378 · TypeScript · MIT · updated Jun 2026

A modular geospatial engine written in JavaScript and TypeScript

Turf is the standard JavaScript library for client-side and server-side geospatial operations on GeoJSON data. It covers the full spectrum from basic helpers (bounding boxes, centroids, distances) to proper computational geometry (polygon clipping, Voronoi, tin, isolines). If you're doing spatial work in JS without a GIS server, this is the library.

Each operation ships as its own `@turf/*` package, so tree-shaking actually works — you don't drag in 200 algorithms to compute a centroid. The test suite structure is excellent: fixture-based GeoJSON in/out pairs make it trivial to verify edge cases and regression-test with real geographic data. The monorepo uses per-package benchmarks (`bench.ts`) alongside tests, which is rare and useful when you're working with large datasets. TypeScript types are first-class and generated from JSDoc, not bolted on after the fact.

Performance on large polygons is a real problem — algorithms like `booleanIntersects` and `intersect` use naive approaches that get slow past a few thousand vertices; this isn't a niche issue in practice. Deno and Bun are explicitly unsupported, which is increasingly awkward as the ecosystem moves. The `@turf/turf` umbrella package still exists and is widely used, meaning most people are bundling everything despite the modular structure. Documentation is API-reference-only; figuring out which function to use for a non-obvious spatial problem (e.g., 'does this road corridor intersect a flood zone?') requires already knowing the right algorithm name.

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 →