Developer Tooling

PGUI

Project type: Open source

Most Postgres GUIs want a desktop install, a saved-connections file, and write access. PGUI is the opposite: one Docker container, connection details as env vars, read-only enforced at the pool, and auto-discovery of every non-template database on every server you give it.

The Challenge

Engineers want a quick browse of a Postgres instance without installing pgAdmin or risking accidental writes. Multi-server setups — staging, production, analytics — need one UI that covers all of them. New joiners shouldn't have to configure anything to get started.

Our Approach

  • Next.js 16 App Router with Server Components running all database queries server-side — no credentials ever reach the browser
  • All configuration via environment variables (DB_1_HOST, DB_1_USERNAME, …) — the same image works in any environment without a config file
  • pg connection pool with read-only mode enforced at connection time — no destructive query can leak through
  • Auto-discovery via information_schema finds every non-template database, schema, table, and column on each server
  • shadcn/ui + Radix + Tailwind v4 with dark and light theme
  • Ships as a single Docker container with zero external dependencies

What It Achieved

  • Onboarding a new joiner takes one env var, not a manual
  • Safe by default — no GUI tool can accidentally write to the database
  • One container covers every Postgres instance the team uses
  • Every page is a server-rendered Postgres query — no client-side ORM, no schema sync step

Tech Stack

Next.js 16React 19TypeScriptpgPostgreSQLshadcn/uiRadix UITailwind CSS v4Docker

Need a custom internal tool?

If your team needs a small, focused web app that wires straight into existing systems, we'll build it.

Book a discovery call