finds.dev← search

// the find

simonw/datasette

★ 11,487 · Python · Apache-2.0 · updated Sep 2026

An open source multi-tool for exploring and publishing data

Datasette turns any SQLite database into a browsable website and JSON/CSV API with zero code — point it at a .db file and get filtering, faceting, full-text search, and a query editor for free. It's aimed at data journalists, archivists, and anyone who needs to publish a dataset without standing up a backend, and it doubles as a plugin platform (500+ plugins) for people who want to extend that base.

The plugin hook system (hookspecs.py) is the real architecture here — auth, rendering, permissions, and even SQL functions are all pluggable, which is why the ecosystem around it (datasette-vega, datasette-cluster-map, etc.) is so large. `datasette publish` to Cloud Run/Heroku is genuinely useful: it bakes the SQLite file into a Docker image so you get a real deployed API with one command. SQLite-first design means read replication and backups are just file copies, and the immutable-mode flag lets you serve a DB safely without lock contention.

It's fundamentally single-writer SQLite — the `execute_write.py` view exists but this is not a multi-writer production database backend, and people occasionally try to use it as one. The permissions system (default_permissions/) is powerful but has enough moving parts (actor, restrictions, root, tokens) that getting auth right for a public instance takes real reading, not a five-minute setup. Faceting and full-text search are SQLite FTS under the hood, so performance on large tables depends entirely on you having built the right indexes beforehand — there's no query planner hand-holding.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →