The database
explorah.
A native, keyboard-first database workbench. Connect Postgres, MySQL, SQLite, or Turso, or just drop in a CSV. Then query it in SQL, type-safe Drizzle/Prisma, or plain English.
More Than a table viewer.
Docker, Analytics, Query Builder and execution.
Multi-Database
PostgreSQL, SQLite, libSQL, MySQL. Connect anywhere: local, hosted, tunneled, SSH.
Connect Anywhere
Local, Neon, Turso, or over SSH. Connect to databases wherever they run.
Docker Containers
Start, stop, restart. Live process management. Auto-reconnect on failure.
Schema Visualization
ERD diagram. Live relationships. Query-driven discovery. Instant insight.
SSH Tunneling
Reach private databases behind firewalls through encrypted SSH tunnels, no VPN required.
postgresql://app:s3cr3t@db.neon.tech:5432/store?sslmode=requirePostgreSQLPaste to Connect
Drop in any connection string, and Dora parses every field automatically.
Many connections, one window
Keep several databases open at once, each with its own isolated tabs, filters, and scroll position.
PostHog analytics, built innative engine
Point Dora at a PostHog project and explore events, top pages, and live traffic in HogQL: KPI tiles, activity charts, and the sites actually sending data, no SQL required.
That .csv doesn't need a database first.
Drop a file. Query it like a table.
No import step
Point Dora at a .csv, .tsv, .parquet, .json, or .ndjson file. It reads the schema in place.
Real SQL, real joins
Filter, aggregate, and JOIN across several dropped files in one query, with results in table or JSON view.
Read-only by design
Your source files are never modified. Materialize the result into any connected database when you're ready.
Keep it as DuckDB
Files open as in-memory views. When one's worth keeping, save the session to a real, editable .duckdb file on disk.
SELECT s.region, SUM(s.revenue) FROM sales s JOIN customers c USING (id) GROUP BY s.region
Query files like tables
Drop a CSV, Parquet, or JSON file and Dora opens it as a table. Run SQL, even JOIN across files, powered by an embedded DuckDB engine.
Aww, is SQL too hard for you?
Three ways to ask. One engine.
SELECT name, sum(total) AS revenue FROM orders GROUP BY name ORDER BY revenue DESC LIMIT 5;
Every dialect lands in the same place
Describe it in English, or stay type-safe in Drizzle or Prisma. Each path compiles to plain SQL you can read, edit, and run on the same engine.
Every database you reach for.
One workbench for all of them.
Native connectors and hosted databases
- Supabase, OAuth: Authorize in one click or paste an access token, then pick a project.
- Neon, API key: Pick a project branch and Dora builds the pooled connection string.
- Turso, API token: Pick a database across your organizations; Dora mints its auth token.
- PlanetScale, Service token: Pick a database and branch to connect.
- Vercel, Access token: Pick a project and Dora reads its Postgres store URL.
- Xata, API key: Connects through the Postgres endpoint of a database branch.
- Cloudflare D1, API token: Pick an account and a D1 database. Queries run over the D1 HTTP API.
- PostHog, API key: Query events with HogQL and build a built-in analytics dashboard.
- Railway, Connection string: Paste a Postgres or MySQL connection string.
- Render, Connection string: Paste a Postgres connection string.
- Fly.io, Connection string: Paste a Postgres connection string.
- Aiven, Connection string: Paste a Postgres or MySQL connection string.
- DigitalOcean, Connection string: Paste a Postgres or MySQL connection string.
- Crunchy Bridge, Connection string: Paste a Postgres connection string.
- Timescale, Connection string: Paste a Postgres connection string.
- AWS RDS, Connection string: Paste a Postgres or MySQL connection string.
- Azure, Connection string: Paste a Postgres or MySQL connection string.
- Google Cloud SQL, Connection string: Paste a Postgres or MySQL connection string.
- CockroachDB Cloud, Connection string: Paste the Postgres-compatible connection string.
- TiDB Cloud, Connection string: Paste the MySQL-compatible connection string.
Connect with OAuth, an API token, or a branch picker, not just a pasted string. Supabase authorizes in one click; Neon and PlanetScale connect branch-aware; Cloudflare D1 speaks its own HTTP engine, and PostHog turns HogQL events into a built-in analytics dashboard. Every other host works with any Postgres, MySQL, or libSQL connection string.