Tables
tabBrowse, edit, bulk-update. The daily surface.
- FK drilldown by any column
- Bulk edit · find & replace · fill NULLs
- Sensitive columns mask values until you reveal
Studio · 01 — Overview
Studio runs in-process with the same engine your app uses. Browse, edit, plan migrations, restore drops, watch locks — all against the same connection. Two levels. Eight tabs. One binary.
02 — How it stacks up
Every database GUI handles row browsing. Studio earns its place when something goes wrong on a Friday afternoon — locks, drift, a destructive op nobody tested, a query that wants to be a chart.
| Capability | pgAdmin | TablePlus | Postico | Drizzle Studio | Prisma Studio | Zanith Studio |
|---|---|---|---|---|---|---|
Browse + edit rows the table-first surface | yes | yes | yes | yes | yes | yes |
FK drilldown by any column follow refs that aren't the PK | partial | partial | partial | no | partial | yes |
Bulk edit + find/replace single-click value-fill across a selection | partial | partial | partial | no | no | yes |
Sensitive-column masking passwords / tokens hidden by default | no | no | no | no | no | yes |
Lock graph + RLS inspector see who's blocking, what policies attach | partial | no | no | no | no | yes |
Migrations + recovery built in apply, plan, restore — no separate tool | no | no | no | partial | partial | yes |
EXPLAIN with plan history compare plans across edits | partial | partial | no | no | no | yes |
Result charts (bar / line) ad-hoc visualization on a query result | partial | no | no | no | no | yes |
Watch query · auto-rerun tail metrics in a SQL tab | no | no | no | no | no | yes |
Two-level workspace many DBs at once + drill into one | partial | yes | yes | no | no | yes |
Drizzle and Prisma Studio cover the table surface and their own migrations, but stop there. pgAdmin reaches for the operational depth but is its own UI culture. Studio tries to be both: the daily tool and the on-call tool, in the same window.
03 — Two levels
Workspace is the cross-database view — every server you connect to, recent activity across all of them, a global command palette. Database is what you drop into. The chrome stays the same; the surfaces specialize.
04 — Eight surfaces
Eight tabs, ordered the way teams actually use them. Browse first. Inspect when something looks off. Migrate when ready. Recover when wrong.
Browse, edit, bulk-update. The daily surface.
Views, sequences, triggers, functions. The objects browsing tools forget.
Lock graph, RLS, roles, permissions. Built for on-call.
Multi-tab editor. Plans persist. Charts render in place.
Drag tables, save the layout, export markdown.
Apply, plan, verify — with the engine's gates intact.
Restore artifacts, export archives, sweep cleanups.
Cross-database table and column search.
05 — Bundled, in-process
Studio isn't a separate service. It's a UI layer that sits inside the same Node process — sharing the engine your app uses, the migrations your CI runs, the recovery artifacts your team trusts.
Studio reuses the connection pool your app already runs against. No second set of credentials, no second TLS config.
The schema parsed at startup powers both the typed query API and Studio's table list. Drift in one is drift in both.
Apply from CI or apply from the Migrate tab — the same risk gates, the same audit rows, the same recovery artifacts.
Each sub-page goes deeper than this overview can. All six sub-pages are live — workspace level, the eight tab surfaces, and how to launch the whole thing in production.
The cross-database layer — Home, Servers, Activity, Settings. Many DBs at once.
/studio/workspaceBrowse, edit, bulk-update. FK drilldown, sensitive masking, find & replace.
/studio/tablesMulti-tab editor with plan history, watch mode, and result charts.
/studio/sqlLock graph, RLS inspector, role list, permission matrix.
/studio/securityViews, sequences, triggers, functions — the objects browse tools forget.
/studio/catalogThree deployment shapes — local, shared staff, read-only viewer.
/studio/launchStudio's Migrate tab is the engine's CLI flow with a UI on top. The full system lives at /migrate.
/migrate