{"adoption": {"forks": 447, "observed_at": "2026-08-28T04:05:15.462053+00:00", "stars": 1643}, "canonical_url": "https://ross.abutalabs.com/products/lukasoppermann-html5sortable", "card": {"archived": false, "artifact_type": "library", "description": "VanillaJS sortable lists and grids using native HTML5 drag and drop API.", "domain": ["frontend", "web-development"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": "http://lukasoppermann.github.io/html5sortable/index.html", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["lukasoppermann/html5sortable"], "name": "lukasoppermann/html5sortable", "platform": ["browser", "cross-platform"], "pushed_at": "2024-06-10T13:05:52+00:00", "repo": "lukasoppermann/html5sortable", "stars": 1643, "tags": ["drag-and-drop", "sortable-lists", "vanillajs", "micro-library", "typescript", "no-dependencies"], "topics": ["vanillajs", "sortable-lists", "drag", "javascript", "vanilla-javascript", "drag-and-drop", "sortables"], "urls": [], "use_cases": ["make a list sortable with drag and drop", "reorder grid items by dragging", "drag items between two connected lists", "sort table rows by dragging", "sortable list with drag handles and disabled items", "lightweight drag and drop without jQuery"], "what_it_is": "A lightweight (2.54KB gzipped) vanilla JavaScript micro-library for creating sortable lists and grids using the native HTML5 drag and drop API. It supports nested lists, connected lists, table row sorting, handles, and touch support with no dependencies.", "when_to_avoid": ["you need actively maintained software with guaranteed bug fixes", "you need touch-optimized or mobile-first drag and drop with advanced features", "you are using a framework where a dedicated adapter or component is better supported"], "when_to_choose": ["you need a tiny, dependency-free sortable for plain JavaScript projects", "you want native HTML5 drag and drop for lists, grids, or table rows", "you need connected or nested sortable lists"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lukasoppermann-html5sortable", "repo": "lukasoppermann/html5sortable", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "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:05:15.462053+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.462053+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:59.347743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b144d55a9cc4046dbc0e97f9feeb46fb1d5b386193501b9e4c9a81869cd73575", "fetched_at": "2026-08-28T04:05:15.462053+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukasoppermann/html5sortable"}, {"content_hash": "4abfec21e7470ef0c1e15dd3a066d400b4580c27cc87a63128dab3fb1a2ca687", "fetched_at": "2026-08-29T11:19:21.057589+00:00", "kind": "homepage", "missing": false, "url": "http://lukasoppermann.github.io/html5sortable/index.html"}, {"content_hash": "305f534c47b78a7fd5e5b35d38c4c0ce2021f5f0d77f82693eb622215ce4f191", "fetched_at": "2026-08-29T11:19:21.066879+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html5sortable"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 4738, "days_push": 814, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}