{"slug": "datasette", "name": "Datasette", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 8, "commenters": 11, "warners": 0, "score": 7.87, "rising": -2.62, "first": "2025-12-26", "latest": "2026-07-06", "why": "wonderful Datasette plus the mbox-to-sqlite extension is exactly what you want", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 8, "neutral": 3, "compare": 0, "warn": 0}, "spark": [0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "wonderful Datasette plus the mbox-to-sqlite extension is exactly what you want", "kind": "", "icon": true, "domain": "datasette.io", "github_repo": null, "official_url": "https://datasette.io", "pricing": "", "aliases": ["Datasette"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 777606128, "item_id": 48600383, "url": "https://news.ycombinator.com/item?id=48600383", "by": "simonw", "date": "2026-06-19", "stance": "recommend", "quote": "I have a version of Datasette that runs entirely in the browser", "excerpt": "I have a version of Datasette that runs entirely in the browser (using Pyodide and WebAssembly) and it's smaller than a lot of modern React homepages (12.35MB): https://lite.datasette.io/", "context": "", "use_case": "", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777523953, "item_id": 48595247, "url": "https://news.ycombinator.com/item?id=48595247", "by": "joren-", "date": "2026-06-18", "stance": "recommend", "quote": "Looks like a good addition to the datasette ecosystem.", "excerpt": "Looks like a good addition to the datasette ecosystem. I have been working on a similar idea with cusom html around sqlite databases. By default a faceted search interface is generated but by reusing the client side data layer, custom apps are made easy. The design keeps data and presentation together and even maps do not rely on external services. I have called it Pihka: https://ghentcdh.github.io/Pihka/ https://git", "context": "", "use_case": "", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777505520, "item_id": 48594095, "url": "https://news.ycombinator.com/item?id=48594095", "by": "anitil", "date": "2026-06-18", "stance": "recommend", "quote": "I like this new pattern much better, as it keeps your app and data in one place", "excerpt": "When I've needed something like this in the past I've spun up simple HTML pages and used the json endpoint that all datasette instances come with [0]. I like this new pattern much better, as it keeps your app and data in one place (I remember having some issue with this at the time, though I can't remember what the actual issue was) So I imagine we could now load some data in to sqlite, design some HTML also loaded i", "context": "", "use_case": "Data exploration", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 773254674, "item_id": 48328417, "url": "https://news.ycombinator.com/item?id=48328417", "by": "rpdillon", "date": "2026-05-29", "stance": "recommend", "quote": "simonw's excellent https://github.com/simonw/datasette", "excerpt": "Sqlite is good for lots of stuff, but you're probably focusing your days on high-scale webapps that want sharding with networked DBs. That's one domain, and an interesting one, but there are lots of others. I'm a big fan of re-evaluating prior \"best practices\" in light of technology changes, especially in ways that improve simplicity. Running my family's social media site off a single sqlite DB on a VPS is great. ~15", "context": "", "use_case": "querying and filtering logs", "switched_from": "", "story": "SQLite is all you need for durable workflows"}, {"id": 767516224, "item_id": 47969764, "url": "https://news.ycombinator.com/item?id=47969764", "by": "nl", "date": "2026-04-30", "stance": "recommend", "quote": "wonderful Datasette plus the mbox-to-sqlite extension is exactly what you want", "excerpt": "Simon Willison wonderful Datasette plus the mbox-to-sqlite extension is exactly what you want. https://datasette.io/ https://github.com/simonw/mbox-to-sqlite", "context": "", "use_case": "Browsing and searching data", "switched_from": "", "story": "Full-Text Search with DuckDB"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["data exploration and publishing", "data exploration", "querying and filtering logs", "browsing and searching data", "sqlite data browsing", "structuring city government data"], "compared": [{"slug": "llm", "name": "llm", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "sqlite-utils", "name": "sqlite-utils", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "pyodide", "name": "Pyodide", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "git", "name": "Git", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "claude-code", "name": "Claude Code", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "sqlite", "name": "SQLite", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 786861408, "item_id": 49178838, "url": "https://news.ycombinator.com/item?id=49178838", "by": "simonw", "date": "2026-08-04", "stance": "recommend", "quote": "but Datasette, sqlite-utils and LLM are not that.", "excerpt": "I'm planning an article at the moment in defense of lines of code. Saying \"lines of code are a bad measurement\" is too easy! It's about time someone presented an opposing argument. In my specific case, lines of code for my published open source projects is a metric that I trust, because I have high standards for those. I have plenty of other projects where I'll accept poor quality, unreviewed code (almost all of http", "context": "", "use_case": "", "switched_from": "", "story": "Eight Myths on Software Engineering and GenAI"}, {"id": 786846784, "item_id": 49177924, "url": "https://news.ycombinator.com/item?id=49177924", "by": "simonw", "date": "2026-08-04", "stance": "neutral", "quote": "I have similar charts across my three main open source projects", "excerpt": "How's this? https://simonwillison.net/2026/Jul/13/datasette-code-frequency/ I have similar charts across my three main open source projects: https://github.com/simonw/datasette/graphs/code-frequency https://github.com/simonw/llm/graphs/code-frequency https://github.com/simonw/sqlite-utils/graphs/code-frequency", "context": "maintains datasette, llm and sqlite-utils", "use_case": "", "switched_from": "", "story": "Eight Myths on Software Engineering and GenAI"}, {"id": 777603744, "item_id": 48600234, "url": "https://news.ycombinator.com/item?id=48600234", "by": "simonw", "date": "2026-06-19", "stance": "recommend", "quote": "I'm planning to add a way for trusted users to create these through the UI", "excerpt": "There are actually two types of stored query: regular and \"trusted\". Any query you save is a regular query. It operates under the permissions of the viewer, and checks that the viewer has the necessary permissions - read access to the database, or more finely grained write access which checks the individual tables they will be writing to. The problem with that is that it means you can't build an app which other, sign", "context": "", "use_case": "Hosting custom HTML apps", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777570768, "item_id": 48598173, "url": "https://news.ycombinator.com/item?id=48598173", "by": "simonw", "date": "2026-06-19", "stance": "recommend", "quote": "I started the Datasette project in 2017.", "excerpt": "https://github.com/datasette has 119 - but there are also 232 under my simonw account from before I started the Datasette org: https://github.com/simonw?tab=repositories&q=Datasette-&type=&language=&sort= Most of them predate coding agents. I started the Datasette project in 2017. In fact we can answer this with Datasette! Here's a query showing the 111 packages with at least one release prior to ChatGPT on Nov 30 20", "context": "", "use_case": "exploring and publishing SQLite data", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777175985, "item_id": 48573499, "url": "https://news.ycombinator.com/item?id=48573499", "by": "simonw", "date": "2026-06-17", "stance": "neutral", "quote": "This new feature would be a lot easier to understand if there was a custom API explorer for it.", "excerpt": "> What happened in 2025 was this: the economics of code production were turned upside down. Instead of being very hard, time-consuming, and expensive to generate code, it became effectively free and instant. Lines of code went from being treasured, reused, cared for and carefully curated, to being disposable and regenerable, practically overnight. I've been thinking about this a whole lot recently. So much of my intu", "context": "25 years of software development experience", "use_case": "", "switched_from": "", "story": "AI demands more engineering discipline. Not less"}, {"id": 772801632, "item_id": 48300102, "url": "https://news.ycombinator.com/item?id=48300102", "by": "simonw", "date": "2026-05-27", "stance": "recommend", "quote": "here's a substantial, reviewed PR I landed just yesterday https://github.com/simonw/datasette/pull/2741", "excerpt": "I've thought about this a lot. I am very confident that the way I use LLMs is both accelerating progress on my core projects (here's a substantial, reviewed PR I landed just yesterday https://github.com/simonw/datasette/pull/2741) and helping me create plenty of projects that otherwise would not have existed.", "context": "maintainer", "use_case": "core project developed with LLMs", "switched_from": "", "story": "I think Anthropic and OpenAI have found product-market fit"}], "threads": [{"url": "https://news.ycombinator.com/item?id=48593731", "title": "Datasette Apps: Host custom HTML applications inside Datasette", "mentions": 8}, {"url": "https://news.ycombinator.com/item?id=49176830", "title": "Eight Myths on Software Engineering and GenAI", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48296794", "title": "I think Anthropic and OpenAI have found product-market fit", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47637353", "title": "SQLite in Production: Lessons from Running a Store on a Single File", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48806560", "title": "Union Busters Coming After Me", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48570948", "title": "AI demands more engineering discipline. Not less", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"recommend": 3}, "2026-05": {"recommend": 1}, "2026-06": {"recommend": 2, "neutral": 2}, "2026-07": {"neutral": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 780917184, "item_id": 48807324, "url": "https://news.ycombinator.com/item?id=48807324", "by": "elicash", "date": "2026-07-06", "stance": "neutral", "quote": "(which is run on Datasette)", "excerpt": "This is the attorney who runs https://nlrbresearch.com (which is run on Datasette) and the AI assistant (Claude Skill) that is tied to it https://www.youtube.com/watch?v=mOa3Pc8RD40", "context": "", "use_case": "", "switched_from": "", "story": "Union Busters Coming After Me"}, {"id": 777624065, "item_id": 48601504, "url": "https://news.ycombinator.com/item?id=48601504", "by": "hbcondo714", "date": "2026-06-19", "stance": "neutral", "quote": "so will look into Datasette.", "excerpt": "I\u2019ve been using the Observable Framework[1] for this kind of work but it doesn\u2019t appear to be actively developed anymore so will look into Datasette. [1] https://github.com/observablehq/framework", "context": "", "use_case": "Data exploration and publishing", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777606128, "item_id": 48600383, "url": "https://news.ycombinator.com/item?id=48600383", "by": "simonw", "date": "2026-06-19", "stance": "recommend", "quote": "I have a version of Datasette that runs entirely in the browser", "excerpt": "I have a version of Datasette that runs entirely in the browser (using Pyodide and WebAssembly) and it's smaller than a lot of modern React homepages (12.35MB): https://lite.datasette.io/", "context": "", "use_case": "", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777565504, "item_id": 48597844, "url": "https://news.ycombinator.com/item?id=48597844", "by": "ramses0", "date": "2026-06-19", "stance": "neutral", "quote": "", "excerpt": "nee: couchapps https://railsware.com/blog/couchdb-and-couchapp-part-1/amp/#:~:text=CouchApp%20%E2%80%93%20feel%20power%20of%20JavaScript%20in%20CouchDB https://couchapp.readthedocs.io/en/latest/couchapp/gettingstarted.html#init-your-application https://couchapp.readthedocs.io/en/latest/user/list-of-couchapps.html", "context": "", "use_case": "", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777523953, "item_id": 48595247, "url": "https://news.ycombinator.com/item?id=48595247", "by": "joren-", "date": "2026-06-18", "stance": "recommend", "quote": "Looks like a good addition to the datasette ecosystem.", "excerpt": "Looks like a good addition to the datasette ecosystem. I have been working on a similar idea with cusom html around sqlite databases. By default a faceted search interface is generated but by reusing the client side data layer, custom apps are made easy. The design keeps data and presentation together and even maps do not rely on external services. I have called it Pihka: https://ghentcdh.github.io/Pihka/ https://git", "context": "", "use_case": "", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777516529, "item_id": 48594783, "url": "https://news.ycombinator.com/item?id=48594783", "by": "simonw", "date": "2026-06-18", "stance": "neutral", "quote": "I have an idea for a way to edit them through Datasette", "excerpt": "I'm going to think about how Datasette Apps can work with the apps themselves stored on a filesystem so they can be revision controlled using Git. I have an idea for a way to edit them through Datasette and have them backed up to Git via a separate mechanism, but having them on disk would be a whole lot more convenient. Filed an issue here: https://github.com/datasette/datasette-apps/issues/30", "context": "", "use_case": "", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 777505520, "item_id": 48594095, "url": "https://news.ycombinator.com/item?id=48594095", "by": "anitil", "date": "2026-06-18", "stance": "recommend", "quote": "I like this new pattern much better, as it keeps your app and data in one place", "excerpt": "When I've needed something like this in the past I've spun up simple HTML pages and used the json endpoint that all datasette instances come with [0]. I like this new pattern much better, as it keeps your app and data in one place (I remember having some issue with this at the time, though I can't remember what the actual issue was) So I imagine we could now load some data in to sqlite, design some HTML also loaded i", "context": "", "use_case": "Data exploration", "switched_from": "", "story": "Datasette Apps: Host custom HTML applications inside Datasette"}, {"id": 773254674, "item_id": 48328417, "url": "https://news.ycombinator.com/item?id=48328417", "by": "rpdillon", "date": "2026-05-29", "stance": "recommend", "quote": "simonw's excellent https://github.com/simonw/datasette", "excerpt": "Sqlite is good for lots of stuff, but you're probably focusing your days on high-scale webapps that want sharding with networked DBs. That's one domain, and an interesting one, but there are lots of others. I'm a big fan of re-evaluating prior \"best practices\" in light of technology changes, especially in ways that improve simplicity. Running my family's social media site off a single sqlite DB on a VPS is great. ~15", "context": "", "use_case": "querying and filtering logs", "switched_from": "", "story": "SQLite is all you need for durable workflows"}, {"id": 767516224, "item_id": 47969764, "url": "https://news.ycombinator.com/item?id=47969764", "by": "nl", "date": "2026-04-30", "stance": "recommend", "quote": "wonderful Datasette plus the mbox-to-sqlite extension is exactly what you want", "excerpt": "Simon Willison wonderful Datasette plus the mbox-to-sqlite extension is exactly what you want. https://datasette.io/ https://github.com/simonw/mbox-to-sqlite", "context": "", "use_case": "Browsing and searching data", "switched_from": "", "story": "Full-Text Search with DuckDB"}, {"id": 763822704, "item_id": 47738919, "url": "https://news.ycombinator.com/item?id=47738919", "by": "eu", "date": "2026-04-12", "stance": "recommend", "quote": "consider http://datasette.io/ as well", "excerpt": "consider http://datasette.io/ as well", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Pardonned.com \u2013 A searchable database of US Pardons"}, {"id": 763028288, "item_id": 47689268, "url": "https://news.ycombinator.com/item?id=47689268", "by": "philkrylov", "date": "2026-04-08", "stance": "recommend", "quote": "Hi, thanks for your project!", "excerpt": "Hi, thanks for your project! Do you accept pull requests? https://github.com/simonw/datasette/pull/2616 https://github.com/simonw/datasette/pull/2617", "context": "", "use_case": "SQLite data browsing", "switched_from": "", "story": "SQLite in Production: Lessons from Running a Store on a Single File"}, {"id": 743898496, "item_id": 46493656, "url": "https://news.ycombinator.com/item?id=46493656", "by": "3eb7988a1663", "date": "2026-01-04", "stance": "recommend", "quote": "Philip James has an awesome talk[0] where he uses Datasette to collect city government documents", "excerpt": "Does not give you any insight in the provenance, but Philip James has an awesome talk[0] where he uses Datasette to collect city government documents to be in a more structured format for analysis. Lots of clever automation to extract data from PDFs. Really some amazing work for surfacing civic decisions. [0] https://pyvideo.org/pybay-2024/automate-your-city-data-with-python.html \"Automate Your City Data with Python\"", "context": "", "use_case": "Structuring city government data", "switched_from": "", "story": "North Dakota law lists fake critical minerals based on coal lawyers' names"}, {"id": 742315216, "item_id": 46394701, "url": "https://news.ycombinator.com/item?id=46394701", "by": "jarofgreen", "date": "2025-12-26", "stance": "recommend", "quote": "there is also Datasette in a browser now", "excerpt": "This seems to be about hosting an Sqlite database on a static website like GitHub Pages - this can be a great plan, there is also Datasette in a browser now: https://github.com/simonw/datasette-lite But that's different from how you collect the data in a git repository in the first place - or are you suggesting just putting a Sqlite file in a git repository? If so I can think of one big reason against that.", "context": "", "use_case": "Browser-based SQLite viewer", "switched_from": "", "story": "Package managers keep using Git as a database, it never works out"}, {"id": 737333200, "item_id": 46083325, "url": "https://news.ycombinator.com/item?id=46083325", "by": "simonw", "date": "2025-11-28", "stance": "neutral", "quote": "it uses Pyodide to run Datasette in Python in WebAssembly", "excerpt": "That's a project from a few years ago, it uses Pyodide to run Datasette in Python in WebAssembly: https://simonwillison.net/2022/May/4/datasette-lite/", "context": "", "use_case": "", "switched_from": "", "story": "Beads \u2013 A memory upgrade for your coding agent"}, {"id": 737330768, "item_id": 46083173, "url": "https://news.ycombinator.com/item?id=46083173", "by": "simonw", "date": "2025-11-28", "stance": "neutral", "quote": "I did a livestream thing about building RAG against FTS search in Datasette last year", "excerpt": "I did a livestream thing about building RAG against FTS search in Datasette last year: https://simonwillison.net/2024/Jun/21/search-based-rag/", "context": "", "use_case": "RAG over FTS search", "switched_from": "", "story": "So you wanna build a local RAG?"}, {"id": 735913409, "item_id": 45994588, "url": "https://news.ycombinator.com/item?id=45994588", "by": "simonw", "date": "2025-11-20", "stance": "neutral", "quote": "Infographic explaining how the Datasette open source project works", "excerpt": "This thing's ability to produce entire infographics from a short prompt is really impressive, especially since it can run extra Google searches first. I tried this prompt: Infographic explaining how the Datasette open source project works Here's the result: https://simonwillison.net/2025/Nov/20/nano-banana-pro/#creating-an-infographic", "context": "", "use_case": "", "switched_from": "", "story": "Nano Banana Pro"}]}