Quick Use
pip install datasettedatasette serve your.db— UI on localhost:8001datasette publish vercel your.dbto ship a public read-only data portal
Intro
Datasette is Simon Willison's open-source tool that turns any SQLite database into an instantly browseable web UI plus a full JSON API. Faceted filters, full-text search, pluggable rendering, and one-command publishing to Vercel, Fly.io, or Cloud Run. Best for: open-data publishing, internal data exploration, journalism investigations, anywhere CSV-as-tables beats hand-building dashboards. Works with: any SQLite file (or CSV via sqlite-utils ingestion). Setup time: 2 minutes.
Install + run
pip install datasette
datasette serve fixtures.db --host 0.0.0.0 --port 8001
# open http://localhost:8001Publish to the cloud
# Vercel
datasette publish vercel fixtures.db --project=my-data
# Fly.io
datasette publish fly fixtures.db --app=my-data
# Cloud Run
datasette publish cloudrun fixtures.db --service=my-dataJSON API on every table
curl http://localhost:8001/fixtures/products.json | jq '.rows[0]'
# Filters, sort, search:
curl 'http://localhost:8001/fixtures/products.json?category=Electronics&_sort_desc=price&_size=20'
# Full-text search:
curl 'http://localhost:8001/fixtures/products.json?_search=laptop'Useful plugins
| Plugin | Adds |
|---|---|
datasette-vega |
Charts directly from query results |
datasette-auth-github |
GitHub OAuth gate |
datasette-block-robots |
robots.txt blocking |
datasette-render-images |
Inline image preview from blob columns |
datasette-search-all |
Cross-table search |
Why Simon's tool stack is influential
Datasette has 9,700+ GitHub stars, powers public data portals from government and journalism orgs, and is the second-most-cited tool on simonwillison.net behind the LLM CLI.
FAQ
Q: Can it handle Postgres, not just SQLite?
A: Not directly — Datasette is SQLite-first by design. For Postgres, use db-to-sqlite to mirror a subset, or use Datasette's plugin datasette-postgres for read-only views. Simon's stance: SQLite is enough for 95% of data publishing cases.
Q: How does it differ from Streamlit or Metabase? A: Datasette is read-only by default, no JS to write, generates clean URLs for every row/filter (perfect for sharing). Streamlit is a Python app builder; Metabase is a self-hosted BI. Datasette is the tightest tool when 'just let me share this table' is the actual need.
Q: Plugins or full custom UI? A: Both. Plugins extend rendering, auth, and query types via a documented API. For deeper customization, Datasette ships a Jinja-overridable template system. Most teams never need more than the built-in UI + 2-3 plugins.
Source & Thanks
Built by Simon Willison. Licensed under Apache-2.0.
simonw/datasette — ⭐ 9,700+