{"adoption": {"forks": 62, "observed_at": "2026-08-28T04:06:52.889417+00:00", "stars": 2449}, "canonical_url": "https://ross.abutalabs.com/products/neodrag", "card": {"archived": false, "artifact_type": "library", "description": "One Draggable to rule them all 💍", "domain": ["frontend", "web-development"], "enriched": true, "function": ["ui-components", "frontend-framework"], "health_score": 92, "homepage": "https://neodrag.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["PuruVJ/neodrag"], "name": "PuruVJ/neodrag", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-10T10:53:37+00:00", "repo": "PuruVJ/neodrag", "stars": 2449, "tags": ["draggable", "svelte", "react", "vue", "solid", "drag-and-drop", "tiny-bundle", "ssr-friendly", "nodejs"], "topics": ["svelte", "draggable", "javascript", "typescript"], "urls": [], "use_cases": ["make elements draggable in react", "draggable svelte action", "constrain dragging to parent container", "snap dragging to a grid", "lightweight drag library with small bundle size", "draggable vue directive"], "what_it_is": "Neodrag is a family of tiny (~2KB) multi-framework libraries for making DOM elements draggable, with consistent APIs for Svelte, React, Vue, Solid, and vanilla JS. It supports axis locking, bounds, grid snapping, handles, and SSR-friendly usage.", "when_to_avoid": ["you need full drag-and-drop list reordering or file drop zones", "you need touch/multi-pointer gesture support beyond basic dragging", "you're building with Lit or an unsupported framework"], "when_to_choose": ["you need drag behavior across multiple frameworks with one consistent API", "bundle size matters and you want a ~2KB draggable", "you need SSR compatibility with meta-frameworks like Next.js or SvelteKit", "you need axis locking, bounds, grid snapping, or drag handles"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/neodrag", "repo": "PuruVJ/neodrag", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "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:06:52.889417+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.889417+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:30:14.067082+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "431f3b7d631f4ef7d29bf1f180395d7ce44e6f8d96989011e9b56009d6468d73", "fetched_at": "2026-08-28T04:06:52.889417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PuruVJ/neodrag"}, {"content_hash": "57179f970317faac20e58a6c21b5cfba6536bc69c2c334f3141337058a6fe524", "fetched_at": "2026-08-29T10:11:45.749215+00:00", "kind": "homepage", "missing": false, "url": "https://neodrag.dev"}, {"content_hash": "d2820d80ed43e64c4c7886ecdaf1811fc9663a783cf60f148968c6ba4dac489c", "fetched_at": "2026-08-29T10:11:45.758344+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/svelte"}, {"content_hash": "1fbae9d8217d90f253ef2ca76907fe5295865285451b5e26f7e266d0092e04db", "fetched_at": "2026-08-29T10:11:45.760867+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/react"}, {"content_hash": "e778be1bf2c2ea17ab5cd97796b3de6a2f23479dfda852c3f61beef388917380", "fetched_at": "2026-08-29T10:11:45.763105+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vue"}, {"content_hash": "b34955e348dee014c19b20bd979e4d40c874111cb14f0909289803b018415b3b", "fetched_at": "2026-08-29T10:11:45.765381+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/solid"}, {"content_hash": "e9e2312931a67f41b061168e27f96a1d8568c195750c19b80addcd4ea9f2977f", "fetched_at": "2026-08-29T10:11:45.768052+00:00", "kind": "site_page", "missing": false, "url": "https://www.neodrag.dev/docs/vanilla"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 40}, "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": 1872, "days_push": 23, "days_rel": 441, "gap_med": 0, "n_releases_24m": 22}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}