{"adoption": {"forks": 1015, "observed_at": "2026-08-28T04:10:42.044381+00:00", "stars": 10461}, "canonical_url": "https://ross.abutalabs.com/products/turf", "card": {"archived": false, "artifact_type": "library", "description": "A modular geospatial engine written in JavaScript and TypeScript", "domain": ["web-development"], "enriched": true, "function": ["geospatial", "math", "data-science"], "health_score": 99, "homepage": "https://turfjs.org", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["Turfjs/turf"], "name": "Turfjs/turf", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-18T17:02:51+00:00", "repo": "Turfjs/turf", "stars": 10461, "tags": ["geo", "gis", "spatial-analysis", "computational-geometry", "typescript", "modular", "maps", "geospatial", "algorithms", "nodejs", "javascript"], "topics": ["javascript", "algorithm", "computational-geometry", "geojson", "turf", "gis", "typescript", "geospatial", "mapping"], "urls": [], "use_cases": ["calculate the area of a polygon in geo", "find a point at a given distance along a line", "buffer points and lines on a map", "compute voronoi diagrams in the browser", "classify geo data with jenks natural breaks", "intersect and union polygons server-side with node", "measure distance between two coordinates", "create a tin or contour from scattered points"], "what_it_is": "Turf is a modular geospatial engine written in JavaScript and TypeScript for spatial analysis. It provides traditional spatial operations, GeoJSON helper functions, and data classification/statistics tools that run in browsers or Node.js.", "when_to_avoid": ["you need heavy-duty GIS operations like raster analysis or coordinate reprojection at scale", "you work in Python or another non-JS ecosystem", "you need a full desktop GIS engine with topology and network analysis"], "when_to_choose": ["you need client-side or server-side spatial analysis without sending data to a server", "your data is GeoJSON and you work in JavaScript/TypeScript", "you want small modular functions you can import individually", "you're building mapping apps with Leaflet, Mapbox GL, or MapLibre"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/turf", "repo": "Turfjs/turf", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.044381+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:18:59.814614+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f415b04aa836b93387aaf8dcbe5232edddaa28bae1d9e8c896569c46f491ac36", "fetched_at": "2026-08-28T04:10:42.044381+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Turfjs/turf"}, {"content_hash": "93c295cc8dfe37ce2b4351cbef1c4ca47723c3632c301ec23ecb4f4f4c2d3a1d", "fetched_at": "2026-08-29T08:18:29.418775+00:00", "kind": "homepage", "missing": false, "url": "https://turfjs.org"}, {"content_hash": "8cd2d3a8439d7e5217a5a25b763c55306d190e8c8ab752691a908c058cb86b82", "fetched_at": "2026-08-29T08:18:29.421261+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/intro"}, {"content_hash": "d09cd72dc7a081c806195c780581d8531e05a0c4f623c24b50565ec395c61ed1", "fetched_at": "2026-08-29T08:18:29.422962+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/api/along"}, {"content_hash": "aef250741135799015d22dae30e6615ad6e119cb526bad566e83e247be406fef", "fetched_at": "2026-08-29T08:18:29.424567+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/next/intro"}, {"content_hash": "7bd25a8773183f5c016799b6adccef21dd688ca974e2e552d98ff9a3c30bca0c", "fetched_at": "2026-08-29T08:18:29.426095+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.3.0/intro"}, {"content_hash": "3859861effd52301f74eb48c2297ec3f001abd798e34a0d3889b519c2787152b", "fetched_at": "2026-08-29T08:18:29.428061+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.2.0/intro"}, {"content_hash": "8610273171fb81e495ed5905ad1b5c2554c45b3c94b736cc15f1afe4057823e6", "fetched_at": "2026-08-29T08:18:29.429998+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.1.0/intro"}, {"content_hash": "403bd96e8afb103ca96646d0d53a22f7ec9bea5b3ffbe0ea4f667908f0d60cf7", "fetched_at": "2026-08-29T08:18:29.431630+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/7.0.0/intro"}, {"content_hash": "41c739324f2b851a82bd43695ec3826a537cbf1ef9f824953cb35b21eb540264", "fetched_at": "2026-08-29T08:18:29.433161+00:00", "kind": "site_page", "missing": false, "url": "https://turfjs.org/docs/6.5.0/intro"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4717, "days_push": 15, "days_rel": 30, "gap_med": 47, "n_releases_24m": 8}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}