{"adoption": {"forks": 901, "observed_at": "2026-08-28T04:10:46.949091+00:00", "stars": 11412}, "canonical_url": "https://ross.abutalabs.com/products/datasette", "card": {"archived": false, "artifact_type": "application", "description": "An open source multi-tool for exploring and publishing data", "domain": ["data-science", "databases", "analytics", "developer-tools", "apis", "self-hosted"], "enriched": true, "function": ["database", "search-engine", "api-framework", "data-visualization", "cli", "csv"], "health_score": 98, "homepage": "https://datasette.io", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["simonw/datasette"], "name": "simonw/datasette", "platform": ["python", "windows", "self-hosted", "cli"], "pushed_at": "2026-08-14T00:11:42+00:00", "repo": "simonw/datasette", "stars": 11412, "tags": ["sqlite", "data-publishing", "exploratory-data-analysis", "automatic-api", "asgi", "sql", "data-journalism", "plugin-ecosystem", "data-engineering", "linux", "macos", "docker", "web-server"], "topics": ["sqlite", "python", "datasets", "json", "docker", "datasette", "automatic-api", "asgi", "csv", "datasette-io", "sql"], "urls": [], "use_cases": ["publish a sqlite database as an interactive website", "spin up a JSON API for a CSV file in minutes", "explore and query a large dataset with SQL in the browser", "share data findings with colleagues or the public", "prototype a data backend without writing code", "export query results as CSV or JSON", "host annotated data explorations for journalism or research"], "what_it_is": "Datasette is an open-source tool for exploring and publishing data, turning SQLite databases into interactive websites with an accompanying JSON API. It includes a CLI for serving, importing, and publishing data, plus a large plugin ecosystem.", "when_to_avoid": ["you need a full multi-user write-heavy web application", "your data lives in a non-SQLite production database as the primary store", "you need fine-grained application-level business logic beyond SQL queries", "you require real-time streaming or high-write transactional workloads"], "when_to_choose": ["you have SQLite databases or CSV/JSON data you want to explore or publish", "you need a quick read-only JSON API over structured data", "you are a data journalist, researcher, or archivist sharing datasets", "you want a plugin-extensible data exploration UI without building a backend"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/datasette", "repo": "simonw/datasette", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "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:46.949091+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.949091+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:15:36.820357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "301b76fb1aaf58159fabe5f8c9893293c43630f800e80030ad42a62b5fff32fa", "fetched_at": "2026-08-28T04:10:46.949091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simonw/datasette"}, {"content_hash": "93659d42fe8316f81ab239f5542642c5db9c79355518922ae923f42e36ad3a50", "fetched_at": "2026-08-29T08:14:27.277108+00:00", "kind": "homepage", "missing": false, "url": "https://datasette.io"}, {"content_hash": "f2f3787fed82bf8bc5af7483bc377e8d2bd169b52662a2ffa864b74edb7d277c", "fetched_at": "2026-08-29T08:14:27.289029+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/latest/changelog.html"}, {"content_hash": "8dcf53dbeeb47107e6012020b8a6ed94c557b3c4aaab6378cfd846bbed7773d2", "fetched_at": "2026-08-29T08:14:27.280662+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable"}, {"content_hash": "d10e7b47044711cb6e2664a34111462c83735bb625220f99d212a5bb21d1dd04", "fetched_at": "2026-08-29T08:14:27.282887+00:00", "kind": "site_page", "missing": false, "url": "https://docs.datasette.io/en/stable/changelog.html"}, {"content_hash": "e0113b547053316bd38f4f2c1c059c0adb1937d36558c2a6e9d480de08ce2d2d", "fetched_at": "2026-08-29T08:14:27.297084+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/datasette/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 64}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3237, "days_push": 20, "days_rel": 27, "gap_med": 274, "n_releases_24m": 4}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}