PgDeck

PostgreSQL GUI for Neon

Use a desktop PostgreSQL GUI with Neon.

Neon is serverless PostgreSQL over the wire, so any Postgres client connects to it. Two things behave differently from a normal server: the compute suspends when idle, and every branch is its own database with its own connection string.

Short answer: Copy the connection string from your Neon project dashboard and paste it into the client. SSL is mandatory - Neon rejects connections without sslmode=require. Expect the first query after a period of inactivity to take a second or two while the compute resumes; that is autosuspend, not a broken connection.

PgDeck PostgreSQL desktop client with schema navigation, table filtering, row editing, and SQL tools

Why developers use PgDeck

PgDeck is shaped around PostgreSQL tasks that happen every day: connect, inspect, filter, edit, query, manage structure, copy, and export.

Paste a Neon connection URL and every field is filled in for you
sslmode=require is carried across automatically from the URL
Save one connection per branch and switch between them
Passwords stored in the OS keychain, not a config file
Export any filtered view to CSV, JSON, or SQL INSERT statements

Secure connections

Save PostgreSQL connection details with encrypted passwords, SSL settings, URL import, testing, search, edit, and delete actions.

Schema and data grid

Browse schemas and tables, search the table list, pin favorites, filter rows, sort columns, resize columns, and paginate results.

SQL workspace

Run SELECT and non-SELECT statements from multi-tab SQL editors with syntax highlighting and interactive query results.

Staged editing

Edit cells, add rows, duplicate rows, set NULL, stage deletes, review pending changes, and commit everything in one transaction.

Connect PgDeck to a Neon database

  1. Copy the connection string

    In the Neon console, open your project and use the Connection Details panel. Select the branch and the database you want, then copy the connection string. Neon shows the password only when the string is first generated, so copy the whole URL rather than reconstructing it later.

  2. Choose pooled or direct

    Neon offers a pooled endpoint whose hostname carries a -pooler suffix, and a direct endpoint without it. Pooled is built for applications opening many short-lived connections. For a desktop GUI holding one session, the direct endpoint is the simpler choice and avoids pooler-mode restrictions.

    # Direct endpoint (simplest for a GUI client)
    postgres://user:PASSWORD@ep-cool-name-123456.eu-central-1.aws.neon.tech/neondb?sslmode=require
    
    # Pooled endpoint - note the -pooler suffix
    postgres://user:PASSWORD@ep-cool-name-123456-pooler.eu-central-1.aws.neon.tech/neondb?sslmode=require
  3. Paste the URL into PgDeck

    Use Import from URL when creating the connection. The Neon hostname is long and easy to mistype, and pasting carries the sslmode across with it. PgDeck stores the password in your operating system keychain rather than a plain-text config file.

  4. Keep sslmode=require

    Neon terminates connections that do not use TLS. The connection string includes sslmode=require; if you build the connection by hand and omit it, the failure looks like a generic connection error rather than an SSL one.

  5. Expect a cold start, once

    Neon suspends the compute after a period of inactivity. The first connection or query after that pause waits while it resumes, typically a second or two. It is not a timeout and not a misconfiguration - subsequent queries run at normal speed, and the autosuspend delay is configurable on paid plans.

One connection per branch

Neon's branching gives each branch its own endpoint and its own connection string, so a branch is a separate saved connection in the client, not a dropdown inside one. Name them after the branch - main, staging, pr-482 - because the hostnames are auto-generated and impossible to tell apart at a glance. This is where the free tier's two-connection limit starts to bite and Pro's unlimited saved connections earns its keep.

Cold starts change how the client feels

A conventional Postgres server is always warm. Neon's compute suspends when idle, so the first action after a break pays a resume cost. In practice this means a client that opens a connection lazily feels slower on the first click and normal afterwards. It is worth knowing before you conclude that a query is slow or that the connection has dropped.

Why a desktop client alongside the Neon console

The Neon console is a good SQL editor and a poor data grid, which is the usual shape for a provider console. A desktop client adds type-aware filters over large tables, staged multi-row edits committed as one transaction, exports to CSV and SQL INSERT statements, an ERD built from your foreign keys, and query history that persists on your machine.

Safe work on a branch, then main

Branching is the reason Neon is pleasant to do risky work on: create a branch, point the client at it, run the destructive migration or the bulk correction there, and check the result before doing it for real. Saving both branch and main as separate connections makes that loop quick - and makes it obvious which one you are pointed at.

Related PostgreSQL guides

More on choosing, comparing, and running a PostgreSQL desktop client.

Can I use a PostgreSQL GUI with Neon?

Yes. Neon speaks the standard PostgreSQL wire protocol, so PgDeck, pgAdmin, DBeaver, TablePlus, and psql all connect. Copy the connection string from the Neon console's Connection Details panel and paste it into the client.

Why is my first Neon query slow?

Neon suspends the compute after inactivity, so the first connection or query after a pause waits while it resumes - usually a second or two. Later queries run at full speed. The autosuspend timeout is configurable on paid plans.

Should I use Neon's pooled or direct connection string?

For a desktop GUI holding a single session, use the direct endpoint - the one without the -pooler suffix in the hostname. The pooled endpoint exists for applications that open many short-lived connections.

Does Neon require SSL?

Yes. Neon terminates connections that do not use TLS, so the connection string must include sslmode=require. Pasting the URL from the console rather than typing the fields carries this across for you.

How do I connect to a Neon branch?

Each branch has its own endpoint and connection string, so save one connection per branch and name it after the branch. The auto-generated hostnames are not distinguishable at a glance, so the name is what stops you running a migration against main.