I got tired of having 15 browser tabs open every time I needed to do basic PostgreSQL tasks -- one for formatting SQL, another for decoding EXPLAIN output, a third for looking up connection string formats, and a Stack Overflow tab for pg_hba.conf syntax I can never remember. So we built all of them into one place, running entirely client-side with zero data sent to any server.
The Problem
PostgreSQL developers regularly need to parse EXPLAIN output, format SQL, convert connection strings, generate pg_hba.conf rules, lint migrations for safety, and a dozen other small tasks. Each one sends you to a different website, CLI tool, or Stack Overflow answer. Most online tools require pasting your SQL or connection details into someone else's server -- an uncomfortable trade-off when you are working with production queries or real credentials.
The alternative is installing local tools: pgFormatter for SQL formatting, sqlfluff for linting, custom scripts for connection string parsing. Each requires installation, configuration, and the context switch of leaving your browser. For tasks you perform a few times a week, the overhead of maintaining local tooling often means you just do it manually.
What you want is a set of tools that are immediately available, require no installation, handle the common PostgreSQL tasks, and never send your data anywhere. Browser-based tools with client-side processing fit this exactly: open a URL, paste your input, get results. No accounts, no API calls, no data leaving your machine.
The Tools
Query and Performance
1. EXPLAIN Plan Visualizer -- Paste raw EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) output and get an interactive tree view of the query plan. Each node shows its actual time, rows, and buffer usage. A flame graph view highlights where time is spent proportionally. The bottleneck analysis identifies the slowest nodes and generates specific SQL recommendations -- "Add an index on orders.customer_id to eliminate the sequential scan on orders (estimated 340ms savings)." Supports both JSON and text format EXPLAIN output.
2. SQL Formatter -- Paste messy SQL and get consistently formatted output. Handles SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, and CTE queries. Customizable indentation (2 or 4 spaces, tabs), keyword casing (UPPER, lower, Capitalize), and comma placement (leading or trailing).
3. Index Advisor -- Paste one or more SQL queries and get heuristic-based index recommendations. The tool parses WHERE clauses, JOIN conditions, and ORDER BY expressions to suggest B-tree indexes that would benefit the query. It identifies equality predicates (good for leading index columns), range predicates (better as trailing columns), and multi-column opportunities.
Configuration and Security
4. PostgreSQL Config Tuner -- Enter your server specs (RAM, CPU cores, disk type, connection count) and workload type (OLTP, data warehouse, mixed, web application) and get optimized postgresql.conf settings. Covers shared_buffers, effective_cache_size, work_mem, maintenance_work_mem, wal_buffers, max_wal_size, checkpoint_completion_target, random_page_cost, and effective_io_concurrency. Each recommendation includes an explanation of why that value was chosen for your hardware.
5. pg_hba.conf Generator -- Build authentication rules with a visual form instead of editing the raw file. Select connection type (local, host, hostssl), database, user, address range, and auth method (scram-sha-256, md5, cert, reject). Add multiple rules, drag to reorder (order matters -- first match wins), and export the complete file.
6. Connection String Builder -- Enter connection parameters once and get the string in 6 formats: PostgreSQL URI, keyword/value, JDBC, psql command, pgAdmin server config, and environment variables. Also works in reverse -- paste any format and it parses the components out for conversion. Handles SSL parameters, sslmode, application name, and connection timeouts.
Operations and Maintenance
7. Table Bloat Estimator -- Paste pg_stat_user_tables output or pgstattuple results for a table and get a bloat estimate with context. Shows estimated dead space, bloat ratio, and whether the table is a candidate for VACUUM, VACUUM FULL, or pg_repack.
8. Lock Chain Visualizer -- Paste the output of a pg_locks join query and see the lock dependency graph rendered visually. The tree view makes it easy to find the root blocker in a chain of 5+ waiting sessions -- something nearly impossible from raw pg_locks rows.
9. Migration Linter -- Paste a SQL migration and get warnings about unsafe operations. Checks for ALTER TABLE adding a column with a non-null default (rewrites in PG < 11), missing IF NOT EXISTS, DROP COLUMN without confirming no dependent views, missing transaction blocks, and CREATE INDEX without CONCURRENTLY.
Schema and Development
10. RLS Policy Builder -- Generate Row Level Security policies from templates. Select a common pattern (tenant isolation, role-based access, ownership-based, time-based), configure the parameters, and get the complete CREATE POLICY statements for SELECT, INSERT, UPDATE, and DELETE.
11. Data Type Picker -- Browse all PostgreSQL data types with storage sizes, value ranges, and usage recommendations. Each type includes common pitfalls -- for example, money type uses locale-dependent formatting and should generally be avoided in favor of numeric(12,2).
12. Cron Expression Builder -- Build pg_cron schedule expressions with a visual editor. See the next 10 scheduled run times to verify the expression matches your intent.
How They Work
Every tool runs entirely in the browser. No data is sent to any server. The page loads the JavaScript, and all parsing, analysis, and rendering happens client-side. You can verify this by opening browser DevTools and watching the Network tab -- no requests are made after the initial page load.
No signup required. No usage limits. No feature gating. The tools are free, permanently.
Why Free Tools Matter
PostgreSQL's ecosystem benefits when common tasks are easier. A developer who can quickly visualize an EXPLAIN plan catches performance problems earlier. A DBA who can generate a correct pg_hba.conf rule does not accidentally lock themselves out of the database. A team that lints their migrations before applying them avoids the 4 AM "ALTER TABLE took an exclusive lock on a 500 million row table" incident.
Try them all at mydba.dev/tools.
Top comments (0)