WebDataStudio is a database studio you run yourself: one container, nine engines, no install on anybody's machine. Write queries, edit data, design schemas, read execution plans and keep an eye on the server — from any browser on the network.
# one container, one volume, done
docker run -d -p 8080:8080 -v wds-data:/data \
-e WDS_CONN_LOCAL="postgres://app:pw@db:5432/shop" \
ghcr.io/fgilde/webdatastudio
Every driver says what it can do, and the UI hides what an engine does not support.
Everything below ships in the same image; nothing is held back for a paid tier.
Monaco with dialect-aware highlighting, schema-aware completion, formatting, the statement under the cursor highlighted, F5 for the selection, bind parameters and snippets.
A virtualised grid for hundreds of thousands of rows, streamed while the query is still running, with per-column filters, grouping, a form view, a transposed view and charts.
Edit cells like a spreadsheet. Before anything runs you see the exact SQL, and a table without a primary key says why it cannot be edited instead of guessing.
CSV, TSV, Excel, JSON, NDJSON, XML, YAML, Markdown, HTML, SQL and Parquet — streamed, not buffered. Import from CSV, Excel, JSON and SQL, or copy a table to another engine.
A table designer, index and constraint management, an ER diagram with automatic layout, and a migration script preview for every change.
Estimated and actual plans with a cost heat map, an index advisor that writes the
CREATE INDEX for you, deep analyze, slow queries and server metrics.
Maintenance commands, sessions and kill, databases, users and privileges, the server log, and backup and restore through the engines' own tools.
Connections come from environment variables, so a studio for your stack is one container in Docker Compose, Kubernetes or a .NET Aspire app host.
The same app in two of its twenty-one themes.
Hang it into your app host and it picks up the connection string of your resource.
var db = builder.AddPostgres("db").AddDatabase("shop");
builder.AddContainer("studio", "ghcr.io/fgilde/webdatastudio")
.WithHttpEndpoint(port: 8080, targetPort: 8080)
.WithEnvironment("WDS_CONN_SHOP", db.Resource.ConnectionStringExpression)
.WithVolume("wds-data", "/data");
Free and community editions only, as of August 2026. Every one of these is a good tool; this table is about which one fits a browser-first, self-hosted setup.
| WebDataStudio | DbGate | Adminer | phpMyAdmin | pgAdmin 4 | CloudBeaver CE | |
|---|---|---|---|---|---|---|
| Runs in a browser | yes | yes | yes | yes | yes | yes |
| Official container image | yes | yes | yes | yes | yes | yes |
| Licence | MIT | GPL/premium | Apache 2.0/GPL | GPL | PostgreSQL licence | Apache 2.0 |
| Relational engines | PostgreSQL, MySQL/MariaDB, SQL Server, SQLite, Oracle, DuckDB, ClickHouse | PostgreSQL, MySQL/MariaDB, SQL Server, SQLite, Oracle, ClickHouse and more | MySQL/MariaDB, PostgreSQL, SQLite, SQL Server, Oracle, Firebird | MySQL/MariaDB | PostgreSQL | Many, through JDBC |
| MongoDB and Redis | both | both | no | no | no | in the enterprise edition |
| Connections from environment variables | yes | yes | one server per URL | yes | via a servers.json file | via a config file |
| ER diagram | yes | yes | no | designer | yes | yes |
| Execution plans | estimated and actual | text plan | EXPLAIN output | EXPLAIN output | graphical | yes |
| Index advisor and deep analyze | yes | no | no | advisor for MySQL variables | no | no |
| Schema and data comparison | yes | in the premium edition | no | no | no | no |
| Backup and restore from the UI | yes | export only | SQL dump | SQL dump | yes | export only |
| Price for everything above | free | free core, paid premium | free | free | free | free core, paid enterprise |
Found something out of date? Open an issue and it gets corrected — a comparison is only worth having while it is accurate.
The container is the main way to run it. Desktop builds are the same server in a single file.
docker run -d -p 8080:8080 -v wds-data:/data ghcr.io/fgilde/webdatastudio
Image on
GHCR
A self-contained binary per platform; start it and your browser opens.
Releases
.NET 10 and Node 22, then dotnet run and npm run dev.
Development guide