zanith

Zanith Studio

Your whole database,
one window.

Browse, edit, query, migrate, recover — bundled with the engine, running on your machine. One command.

$ zanith studioRead the docs
zanith studio — prod_dbpostgres 17 · read-only
tablescatalogsecuritysqlschemamigraterecoversearch
users4,218 rows+ new
emailroleorg_idactive
[email protected]adminacmetrue
memberacmetrue
[email protected]memberglobexfalse
[email protected]ownerinitechtrue
[email protected]memberglobextrue
UPDATE users SET email = $1 WHERE id = $2 — parameterized · shown before it runs
8 surfaces · runtime graph · no codegen765/765 ✓
zero config·runs local·read-only by default·postgres · sqlite

02 — How it stacks up

Browsing tables is the easy part.

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.

CapabilitypgAdminTablePlusPosticoDrizzle StudioPrisma StudioZanith Studio
Browse + edit rows
the table-first surface
yesyesyesyesyesyes
FK drilldown by any column
follow refs that aren't the PK
partialpartialpartialnopartialyes
Bulk edit + find/replace
single-click value-fill across a selection
partialpartialpartialnonoyes
Sensitive-column masking
passwords / tokens hidden by default
nononononoyes
Lock graph + RLS inspector
see who's blocking, what policies attach
partialnonononoyes
Migrations + recovery built in
apply, plan, restore — no separate tool
nononopartialpartialyes
EXPLAIN with plan history
compare plans across edits
partialpartialnononoyes
Result charts (bar / line)
ad-hoc visualization on a query result
partialnonononoyes
Watch query · auto-rerun
tail metrics in a SQL tab
nononononoyes
Two-level workspace
many DBs at once + drill into one
partialyesyesnonoyes

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.

Two levels

Many databases up here.
One, down here.

The workspace sits above every connection — health, activity, cross-database search. Drop into one and the eight surfaces open up. Two levels, one mental model: pick a database, then pick a tool.

⌘1 ⌘2 ⌘3 quick-switchhealth badges

workspace · above the database

prod_db

● healthy

staging

● healthy

dev_local

● healthy

analytics

● healthy

drill into prod_db
prod_db · inside one database
overviewtablescatalogsecuritysqlschema
8 surfaces · runtime graph

Eight surfaces

One window,
eight ways in.

Most GUIs stop at the table browser. Studio keeps going — SQL with plans, migrations with a risk gate, recovery, the security matrix, the catalog. Same window, same connection.

zanith studio — prod_dbpostgres · read-only
Tables1 / 8
[email protected]admin● true
[email protected]member● true
[email protected]member○ false
[email protected]owner● true

Tables. Browse and edit like a spreadsheet — FK drilldown, bulk ops, masked secrets.

05 — Bundled, in-process

Not a second server. The same process.

Prisma Studio and Drizzle Studio spin up a separate process with its own database connection. Zanith Studio is a UI layer inside the same Node process your app runs — sharing one engine, one pool, one migration runner. Less to deploy, less to secure, nothing to drift.

in-process architectureone process · one connection
ONE NODE PROCESSapp codedb.users.findMany(…)studiothe 8-tab UIzanith engineone pool · migration runner · recoverypostgres
One pool01

One pool, not two

Studio reuses the connection pool your app already runs. A separate GUI opens its own — second credentials, second TLS, second thing to leak.

One graph02

One graph, not two

The schema parsed at startup powers both the typed query API and Studio's table list. There's no second schema to drift out of sync.

One migration runner03

One migration runner

Apply from CI or apply from the Migrate tab — the same risk gates, the same audit rows, the same recovery artifacts. One source of truth.