Explain Plan
Paste a PostgreSQL, MySQL/MariaDB, SQLite or SQL Server EXPLAIN output and visualise the query plan.
#Explain Plan
A free online EXPLAIN plan visualizer: paste the EXPLAIN output of a PostgreSQL, MySQL/MariaDB, SQLite or SQL Server query and explore it as an interactive graph, diagram, table and statistics view — with automatic performance findings.
Everything runs in the browser. No query is ever executed and nothing is uploaded to a server.
Built on @tabularis/explain,
the engine behind the Visual EXPLAIN
feature of Tabularis, and styled with the same
Tabularis dark theme.
Discord — Join our Discord server to talk with the maintainers, share feedback, and get help from the community.
#Supported input formats
| Engine | Formats |
|---|---|
| PostgreSQL | EXPLAIN (FORMAT JSON), plain EXPLAIN / EXPLAIN ANALYZE text |
| MySQL / MariaDB | EXPLAIN FORMAT=JSON, EXPLAIN ANALYZE / ANALYZE FORMAT=TEXT trees |
| SQLite | EXPLAIN QUERY PLAN — the sqlite3 shell tree (` |
| SQL Server | SHOWPLAN_XML estimated plans and STATISTICS XML actual plans (ShowPlanXML documents) |
The engine can be selected explicitly or auto-detected from the pasted text.
SQL Server's ShowPlanXML root element makes its format unambiguous.
#Stack
- Vite + React 19 + TypeScript
- Tailwind CSS 4 with the Tabularis colour tokens
@tabularis/explainfor parsing, analysis and the plan views@tabularis/explain-sqlserverfor SQL Server SHOWPLAN XML- Vitest + Testing Library for tests
#Development
pnpm install pnpm dev # local dev server pnpm test # run the test suite pnpm typecheck # TypeScript only pnpm build # typecheck + production build into dist/ pnpm preview # serve the production build locally
#Customizable SEO
All SEO is driven by seo.config.json — title,
description, keywords, canonical URL, Open Graph / Twitter cards, robots,
theme colour and JSON-LD. The tags are injected into index.html at build
time by the seo-inject plugin in vite.config.ts, so
customizing the SEO never requires touching the HTML or the app code.
seo.config.json → image points at /og.png; drop a 1200×630 social card
into public/og.png (none is committed).
#Deploying to Vercel
The site is a fully static single-page build — Vercel auto-detects Vite with zero configuration:
vercel deploy
(Framework preset: Vite, build command pnpm build, output directory dist.)