Compare

Relyt One and Neon, fact by fact

Both are serverless PostgreSQL services with database branching. This page lists what each one publishes about its features and Free plan, with a source for every row, followed by a manual migration guide.

As of 2026-11-05. Every fact below was checked that day against the official page linked in its row.

Facts side by side

ItemRelyt OneNeonSources
PostgreSQL versionStandard PostgreSQL 17.Postgres 14, 15, 16, 17 and 18 (the five latest major versions).
Database branchingYes. A branch is a copy-on-write fork of its parent with the full data set, ready in seconds.Yes. A branch is a copy-on-write clone of your data, created from the current state or a past one.
Idle computeAn idle compute can suspend and resume on the next connection.Scale to zero suspends a compute after 5 minutes of inactivity and reactivates it on the next query. Fixed on the Free plan; paid plans can turn it off.
Compute size unitSized in CUs: 1 CU = 1 vCPU + 4 GB RAM.Sized in CUs: each CU allocates about 4 GB of RAM, along with associated CPU and local SSD.
Free plan price$0 per month. No credit card required.$0 per month. No credit card required; the Free plan is permanent, not a trial.
Projects on the Free planUp to 5 projects in one organization.100 projects.
Storage on the Free plan2.5 GB in total, with 0.5 GB per project included.1 GB per project, up to 20 GB across all projects.
Compute on the Free planUnlimited shared compute hours, as an early-bird offer.100 CU-hours per project per month, with autoscaling up to 2 CU (8 GB RAM).
Managed auth for your app's usersYes, optional and currently in preview. Tokens are short-lived, EdDSA-signed JWTs published through JWKS.Yes. Managed Better Auth keeps your users and sessions in your own Postgres database, so auth state branches with your data.
Vector search extensionThe vectors extension (pgvecto.rs), preloaded in every database.The pgvector extension.
Other extensionsExtensions such as pg_trgm, citext and pgcrypto.pg_trgm, citext and pgcrypto are all on the list of supported extensions.
Management APIA REST Open API with API keys covers organizations, projects, branches and computes.The Neon REST API, authenticated with API keys. Neon also documents a CLI and an MCP server.

This table restates what each company publishes on its own website. It is not a ranking or a benchmark. Plans and features change, so the official pages linked in each row take precedence over this page.

Move a Postgres database to Relyt One by hand

A manual dump and restore with the standard PostgreSQL client tools. It is for source databases on PostgreSQL 17 or earlier, such as a local server or a Neon database on one of those versions. Replace the placeholders in the first step with your own connection strings, then run each block in order.

These commands were replayed exactly as shown between two PostgreSQL 17 servers, using PostgreSQL 17 client tools.

  1. 01

    Set the two connection strings

    Create a project in Relyt One and copy its connection string. Export it together with the source database's connection string. Relyt One runs PostgreSQL 17; pg_dump must be at least as new as the source server, so check its version. If the source is Neon, use its direct (non-pooled) connection string: Neon's docs advise against running pg_dump over a pooled connection. If the source runs a version newer than PostgreSQL 17 (for example Postgres 18 on Neon), restoring it into Relyt One's PostgreSQL 17 is not supported.

    export SOURCE_DATABASE_URL="postgresql://<user>:<password>@<source-host>/<dbname>"
    export TARGET_DATABASE_URL="postgresql://<user>:<password>@<relyt-one-host>/<dbname>"
    pg_dump --version
  2. 02

    Compare extensions

    List the extensions the source database uses, then the extensions available in your Relyt One database. If something the source relies on is not in the second list, objects that depend on it will fail to restore, so adjust the schema first.

    psql "$SOURCE_DATABASE_URL" -c "SELECT extname, extversion FROM pg_extension ORDER BY 1;"
    psql "$TARGET_DATABASE_URL" -c "SELECT name, default_version FROM pg_available_extensions ORDER BY 1;"
  3. 03

    Dump the source

    Write a custom-format archive (-Fc) of the source database to a local file. -v prints each object as it is dumped.

    pg_dump -Fc -v -d "$SOURCE_DATABASE_URL" -f source.dump
  4. 04

    Restore into Relyt One

    Restore the archive into your Relyt One database. --no-owner and --no-acl skip the source's ownership and privilege statements, whose roles usually do not exist in the target, so the restored objects belong to the role you connect as.

    pg_restore -v --no-owner --no-acl -d "$TARGET_DATABASE_URL" source.dump
  5. 05

    Compare row counts

    Count the rows of every table on both sides and compare the two outputs. When they match, point your application at the Relyt One connection string.

    for url in "$SOURCE_DATABASE_URL" "$TARGET_DATABASE_URL"; do
      psql "$url" -c "SELECT table_schema, table_name, (xpath('/row/c/text()', query_to_xml(format('SELECT count(*) AS c FROM %I.%I', table_schema, table_name), false, true, '')))[1]::text::bigint AS row_count FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema') ORDER BY 1, 2;"
    done

Try Relyt One on the Free plan.

Sign in with GitHub or Google and create a project in seconds. No credit card required.