🇦🇺 Hello Australia! Sydney region is officially live on Neon.Sign Up

Changelog

The latest product updates from Neon

RSS feed

Branch restore with Time Travel Assist

We are thrilled to announce the full launch of our Branch Restore feature with Time Travel Assist, now available for all users.

Using the new Restore page in the Neon Console, or the branches restore command in the Neon CLI, you can easily restore a branch to an earlier state in its own or another branch's history. From the Restore page in the Neon Console, you can also use Time Travel Assist to connect to a specific point in your history retention window, letting you run read-only queries against the point-in-time connection to pinpoint the exact moment you need to restore to, or perform other troubleshooting from your data's history.

Read more about the different types of restore operations available, as well as how to use Time Travel assist, on our documentation page for the feature: Branch restore. You can also follow along with a sample restore from history operation in our blog post, Announcing Point-in-Time Restore, or go for a deeper dive into the technical underpinnings of the feature in Point In Time Recovery Under the Hood in Serverless Postgres.

New Pricing Plans

New pricing plans went into effect earlier this week. This was a significant change with a lot of effort behind the scenes and out front to get it right. We added two new pricing plans, Launch and Scale, bringing us to four different plans to choose from: Free Tier, Launch, Scale, and Enterprise. Visit our Pricing page to learn about the features, allowances, and pricing details for each plan. For an overview of how billing works for these plans, start here.

We know this is a big change. For a rationale about the thinking that went into it, read this blog post, Making pricing more predictable, by our co-founder, Stas Kelvich.

Autoscaling graphs for better observability

Getting better visibility into how your compute scales up and down based on actual usage has been a highly requested feature for our paying users. As a step towards improving monitoring and observability in the Neon Console, we are introducing a new Autoscaling graphs usage visualization tool, available now for all paying users with autoscaling enabled.

To access this view, open a branch from Project → Branches, or from the new Branch → Overview page, and edit the branch's Compute.

Autoscaling graph

New navigation in the Neon Console

We've also made big changes to how you find your way around your projects and branches in the Neon Console. First, we separated our sidebar links into easier-to-understand categories: Project, Branch, and Resources. You can find actions related to either Project or Branch under each label, with support options grouped under Resources.

We also added a more dynamic breadcrumb, with selectors letting you switch between projects and branches, depending on where you are in the Neon Console. This short clip shows you how the navigation works, as well as how to get to the new autoscaling graphs for a selected branch's compute.

Some other nice updates include:

  • Added bold page titles to more easily identify which page you are on as you move through the Neon Console. If you click through to the Operations page or Integrations page for example, through whatever path you take to get there, you'll better know where you are.
  • We've moved your profile avatar to the header of the page, giving you easier access to your account settings and API keys.

Neon Vercel Integration improvements

The following changes were made to the Neon Vercel Integration:

  • To ensure that users accessing a Neon database from a serverless environment have enough connections, the DATABASE_URL and PGHOST environment variables added to a Vercel project by the Neon integration are now set to a pooled Neon connection string by default. Pooled connections support up to 10,000 simultaneous connections. Previously, these variables were set to an unpooled connection string supporting fewer concurrent connections.

    For tools or applications that require a direct database connection, we added two new environment variables that are set to an unpooled connection string: DATABASE_URL_UNPOOLED and PGHOST_UNPOOLED. If necessary, you can configure the Neon Vercel Integration to use these variables. See Manage Vercel environment variables for more information.

    For information about "pooled" vs "unpooled" connections in Neon, see Connection pooling.

  • Adjustments were made to ensure that the integration correctly branches from the primary branch of your Neon project after changing the primary branch.

  • Resolved a problem encountered during the Neon Vercel Integration setup that caused inconsistencies in the branch, roles, and databases displayed when selecting a Neon project.

  • Improved reliability in keeping environment variables set by the Neon Vercel Integration synchronized with those set in your Vercel project.

To learn more about the Neon Vercel Integration, see Connect with the Neon Vercel Integration.

Prisma: One connection to rule them all

Connecting to Neon is simplified with Prisma ORM 5.10.0 or higher. You can now use a single pooled connection string when connecting from Prisma to your Neon database. Previously, to use connection pooling with Neon, you had to configure two connections: a pooled database connection for Prisma Client and a direct database connection for Prisma Migrate (using Prisma’s directUrl datasource field). Additionally, you no longer have to append a pgbouncer=true option to a pooled Neon connection string.

The simplified configuration looks similar to this:

schema.prisma file:

datasource db {
  provider = "postgresql"
  url   = env("DATABASE_URL")
}

.env file:

# Pooled Neon connection string
DATABASE_URL="postgres://alex:AbC123dEf@ep-cool-darkness-123456-pooler.us-east-2.aws.neon.tech/dbname?sslmode=require"

Support for pg_ivm

We've introduced support for the pg_ivm extension in Neon, offering an efficient way to maintain materialized views using Incremental View Maintenance (IVM). With IVM, only the changes since the last refresh are added to the materialized view instead of recomputing the entire view. This can lead to significant performance improvements, especially when you have frequent updates affecting only a small portion of your data.

For more information about the extension, see pg_ivm. For a full list of extensions supported in Neon, see Supported Postgres extensions.

Fixes & improvements

  • As part of the overall move to new pricing plans, the history retention period for Free Tier users is now 1 day. Previously, it was 7 days.
  • Fixed an issue that sometimes prevented users from successfully logging in using neonctl auth. Previously, if you were not logged in to the Neon Console, authentication via the CLI would sometimes fail. Read more about web authentication on the CLI Install page.
  • Added new Grafbase and Outerbase cards to the Integrations page. If you're interested in either of these, head to the Integrations page and click Request to add your vote.
  • Various improvements to the SQL Editor, including improved pagination for large result sets and the ability to cancel an in-progress query using the Escape key.
  • Fixed an issue with some Safari browser versions where disabled inputs were rendered invisible (instead of just greyed out).
  • Reaching the max_connections limit in your Postgres instance now results in a human-readable error message, with a suggestion to increase the maximum vCPU for your compute endpoint. Previously, the server just kept silently retrying the connection until timeout or a cancelation request.
  • When creating a new project, items in the Region selector are now grouped by continent to make it easier to find individual regions.
  • Under Account Settings, you can now manage your password settings from a dedicated new Password section instead of from the Profile section.
  • Fixed an issue that sometimes caused email change operations to fail.
  • Fixed an issue where changing the default minimum and maximum compute sizes for autoscaling sometimes failed to save.

What's new in docs?

A new Monitoring page that gives an overview of what kinds of monitoring and observability tools and features are available in Neon right now. Expect this page to get regular updates as we add more observability features.

We have several new guides for you to check out this week:

We also added documentation for the Postgres extension pg_prewarm, used to preload data into the Postgres shared buffer cache.

Postgres version updates

Supported Postgres versions were updated to 14.11, 15.6, and 16.2, respectively.

Change the email associated with your account

We've added the ability to change the email associated with your account. For example, if you previously signed up using a work-based social account and now want to use your personal email, you can make this change under Profile → Account Settings → Personal Information or using this direct link: change email.

See Changing your email for details.

Neon serverless driver connection caching

Connection caching is now enabled by default at the Neon proxy for HTTP fetch queries using the Neon serverless driver. Connection caching provides server-side connection pooling so that a new connection does not have to be created for each query. Previously, this feature could only be enabled by setting an experimental fetchConnectionCache option to true in your serverless driver connection configuration. If you currently specify this option, you can now remove it. The server-side connection cache works with both pooled and unpooled connections.

Fixes & improvements

  • Fixed an issue that caused asterisk values masking passwords in DATABASE_URL values to be incorrectly displayed in the Neon Vercel Integration.

  • Production environment variables set by the Neon Vercel Integration are now updated if you change your Neon project's primary branch.

  • Corrected the default Postgres in the Create project modal and Neon API.

  • Fixed an issue that caused an error page to be displayed when selecting Settings and then Storage in the Neon Console.

  • Fixed an issue that prevented users from logging in to the Neon Console.

  • The Get projects API now includes a search parameter that lets you search for projects by project name or id.

  • Neon now removes unused logical replication slots after a period of time to avoid unnecessary retention of write-ahead logs, which prevents removing data snapshots that are no longer required.

  • The neon_superuser role now has membership in the predefined pg_monitor Postgres role, which provides read/execute privileges on various Postgres monitoring views and functions. For example, a neon_superuser role can now:

    • View previously unavailable columns in the pg_stat_progress_vacuum view.
    • View queries executed by other users in the pg_stat_statements view.

    The neon_superuser can also grant the pg_monitor role to other Postgres roles.

IPv6 support coming soon

Neon will soon start accepting IPv6 connections at no extra charge. We will keep supporting IPv4 connections, also at no extra charge.

We'll progressively roll out IPv6 to all our supported regions throughout February. You shouldn’t experience any downtime or disturbances: if your host is IPv6 enabled and its client library prefers IPv6 by default, your new connections will start using it. No action is required from you.

If you have any questions, reach out to us in Discord.

Support for prepared statements with PgBouncer

The PgBouncer version used by Neon to offer pooled connection support was updated to version 1.22.0. This version of PgBouncer adds support for DEALLOCATE ALL and DISCARD ALL in transaction mode. In Neon, the new version of PgBouncer enables support for protocol-level prepared statements.

Support for protocol-level prepared statements with PgBouncer means you can now use prepared statements with pooled connections. Using prepared statements can help boost query performance while providing an added layer of protection against potential SQL injection attacks. To learn more, see Optimize queries with PgBouncer and prepared statements.

Fixes & improvements

  • For logical replication, CREATE PUBLICATION my_publication FOR ALL TABLES syntax is now supported in Neon. Previously, FOR ALL TABLES was not supported, and multiple tables could only be specified using CREATE PUBLICATION my_pub FOR TABLE <table1>, <table2> syntax.
  • The Branch selector in the Connection Details widget on the Neon Dashboard now has a Create new branch option.
  • The Quickstart banner that appears at the top of the Neon Dashboard for newly created projects now includes commands for creating and listing branches using the Neon CLI.
  • Added a Save changes button to the Vercel integration drawer on the Integrations page for Vercel environment variable changes. Previously, changes were saved implicitly without confirmation.
  • Corrected the globe coordinates for a supported region on the Project creation page in the Neon console.
  • Updated the documentation link on the Developer Settings page (accessed from your account Profile) to link to the Neon API documentation instead of the Neon documentation landing page.
  • Removed the requirement to specify a --project-id value when issuing a Neon CLI ip-allow command when there is only a single Neon project in your Neon account. The option is now only required if you have multiple Neon projects.

What's new in docs?

To help our users unlock the full potential of Postgres, we're building out our Postgres data type documentation. Whether you're a seasoned Postgres user or new to the platform, our new data type guides can help you get started.

Check out our new Deno Deploy guide to learn how to Connect a Neon Postgres database from your Deno application.

Explore our recently added Reset branch from parent documentation to discover how to update your working branch with the most recent updates from your main branch. For a more visual guide, see this video from Neon DevRel on X.

From the Neon blog

In case you missed them, be sure to check out our latest blog posts:

We're now in Australia

Neon is now available in the Asia Pacific (Sydney) region.

You can select the region for your Neon project during project creation. See Create a project.

Select Sydney region

For information about the regions Neon supports, see Regions.

Postgres extension update for plv8

We updated the plv8 extension to version 3.1.10. If you installed this extension previously and want to upgrade to the latest version, please refer to Update an extension version for instructions.

plv8 is a Javascript language extension for Postgres. To learn more, refer to the PLV8 documentation. For a list of all Postgres extensions supported by Neon, see Supported Postgres extensions.

Vercel integration enhancements

The following updates were made to the Neon Vercel Integration:

  • Preview deployment branches are now created from the primary branch of your Neon project. Previously, the integration created branches from the root branch of your Neon project, which is designated as your project's primary branch by default. Neon lets you change your primary branch. If you have an older version of the integration and you want branches created from your project's primary branch instead of root, reinstall the integration from the Vercel Marketplace.
  • The integration now appends the sslmode=require option to the Neon connection string that it sets for the DATABASE_URL environment variable in Vercel.
  • Fixed an issue that prevented using the integration with more than one Vercel project.
  • Fixed an issue that set the DATABASE_URL variable in the Vercel project settings to a pooled Neon database connection string instead of a direct database connection string.

Fixes & improvements

  • Free Tier users with access to a project shared by a Neon Pro Plan account can now submit support requests via the Support link in the Neon Console sidebar.
  • Fixed an issue that caused shared projects to be displayed under Projects instead of Shared with me on the Projects page in the Neon Console.
  • The Edit compute modal, accessed via the Branches page in the Neon Console, was reimplemented as a side drawer.

What's new in docs?

To help our users unlock the full potential of Postgres, we're building out our Postgres function documentation. Whether you're a seasoned Postgres user or new to the platform, our new function guides can help you get started.

Postman public workspace and collection for the Neon API

We've published a Postman public workspace and collection for the Neon API:

From the Neon blog

In case you missed them, be sure to check out our latest blog posts:

New default Postgres version

The default version for newly created Neon projects is now Postgres 16. Neon continues to support Postgres 14 and 15.

Configurable environment variables for Vercel Integration

  • The Neon Vercel Integration is now supported with applications sourced in GitLab and Bitbucket. Previously, the integration only worked with applications stored in GitHub.

  • The environment variables set by the Neon Vercel Integration when you add the integration to a Vercel project have changed. Previously, the integration set the following Postgres variables:

    • DATABASE_URL
    • PGHOST
    • PGUSER
    • PGDATABASE
    • PGPASSWORD

    The integration now sets only the DATABASE_URL variable by default, which includes all of the required details for connecting to your Neon database.

    If you prefer to use the other Postgres variables with your application instead of DATABASE_URL, you can now configure the variables you want on the Integrations page in the Neon console.

    Select Vercel variables

    The variables you select are set in your Vercel project on your next git push. For details, see Manage Vercel environment variables.

  • Fixed an issue that prevented the DATABASE_URL variable from being set on the first preview deployment after adding the integration to a Vercel project.

Fixes & improvements

  • The List projects API method now returns only projects owned by the current user account. Previously, it also returned projects shared with the current user account. To list projects shared with the current user account, use the List shared projects API method instead.
  • Added a Submit feedback form to the cards on the Integrations page in the Neon Console, letting users share their experience with Neon integrations.
  • We now expose more details in error messages returned from the Neon proxy for Neon serverless driver connections over HTTP.
  • Improved the IP Allow user interface with minor design and copy adjustments.

What's new in docs?

To help our users unlock the full potential of Postgres, we're building out our Postgres extension documentation. Whether you're a seasoned Postgres user or new to the platform, our new extension guides can help you get started.

See our updated roadmap to learn about upcoming features and share your ideas:

Success stories

We are excited to announce the launch of our Success Stories page on the Neon website. This new page highlights real-world experiences and success stories from our valued partners and customers.

From the Neon Blog

In case you missed them, be sure to check out our latest blog posts:

Custom extension support

Neon supports custom-built Postgres extensions for exclusive use with your Neon account. If you developed your own Postgres extension and want to use it with Neon, Scale and Enterprise plan users can open a support ticket. To learn more about how we support custom extensions, check out this blog post: Bring Your Own Extensions to Serverless PostgreSQL.

Neon API updates

Neon CLI updates

The Neon CLI now includes an ip-allow command, which supports list, add, remove, and reset actions on the IP allowlist for your Neon project. For details, see Neon CLI commands — ip-allow. To install the Neon CLI or update your installation to the latest version, see Neon CLI — Install and connect.

Fixes & improvements

  • Added several new integration cards to the Request section of the Integrations page in the Neon Console where you can express your interest and share your feedback about future integrations with Neon. Your input helps the Neon team design and prioritize integrations. To learn how to participate, see Express interest in upcoming integrations.
  • Added a dialog requiring user confirmation when removing all IP addresses from an IP Allow configuration.
  • The Community link in the Neon Console sidebar has been updated to direct users to the Neon Discord server, rather than the Neon Discourse forum.
  • To prevent connection errors at the subscriber and repeated compute restarts, Neon no longer autosuspends a compute instance with an active connection from a logical replication susbscriber.
  • To allow Postgres autovacuum operations to complete their work without interruption, Neon no longer suspends a compute due to inactivity while an autovacuum operation is in progress.
  • Fixed an issue in Neon Console confirmation dialogs that caused an "Unknown error".
  • Fixed an issue preventing the Connection Details widget from displaying code snippets when accessing the Neon Console from a mobile device.
  • Fixed a UI text consistency issue on the Role Created modal that is displayed after creating a new role in the Neon Console.

Neon application demos

Check out our new Demos page showcasing Neon Serverless Postgres application examples.

What's new in docs?

We have a couple of new guides for you to check out this week:

Customer case study

Read about how Branch chose Neon for its true Postgres and serverless nature.

From the Neon Blog

In case you missed them, be sure to check out our latest posts:

Fixes & improvements

  • The Neon CLI now supports get operations for branches with numeric names. Previously, only string values were supported.
  • Corrected the Neon CLI package name that appears in Quickstart banner on the Neon Dashboard. The package name shown in the Windows and Linux installation commands was incorrect.
  • The neon_superuser role is now able to execute the pg_stat_statements_reset() function that is part of the pg_stat_statements extension. This function discards statistics gathered so far by pg_stat_statements. Roles created in the Neon console, CLI, or API, including the default role created with each Neon project, are granted membership in the neon_superuser role. Previously, this function could only be run with a Postgres superuser role, which is restricted in Neon. To make this enhancement available, drop and recreate the pg_stat_statements extension. See Install an extension.
  • For logical replication, the PostgreSQL max_slot_wal_keep_size is now set to 1 GB, limiting the maximum size of WAL files that replication slots are allowed to retain in the pg_wal directory. This is a temporary limit that will be removed in a future release. The limit avoids an accumulation of WAL data at the publisher due to a lagging subscriber, which could cause a slow compute start.
  • Added a Vercel integration card to the Integrations page in the Neon Console.
  • Fixed the Cancel action in card drawers on the Integrations page in the Neon Console. When clicking Cancel, card drawers did not close.

To follow Neon storage and compute releases in GitHub, see Releases.

What's new in docs?

  • Check out our new guide that describes how to replicate data from Neon with Fivetran.
  • Want to better understand how Neon's project billing works? We've added a real-world example of a generative AI project with 80,000 daily active users that walks you through estimating a monthly bill. See Sample billing.
  • Find a typo in the Neon docs? Is there a section that's hard to understand? Notice that a certain topic is missing? The Neon docs are open-source, and contributions are welcome. See our Documentation Contribution Guide for details.

From the Neon Blog

In case you missed them, be sure to check out our latest posts.

Control access to your data with IP Allow

Neon IP Allow banner image

Neon's IP Allow feature, now available with the Neon Pro Plan, ensures that only trusted IP addresses can connect to the project where your database resides, preventing unauthorized access and helping maintain overall data security. You can limit access to individual IP addresses, IP ranges, or IP addresses and ranges defined with CIDR notation.

To get started, see Configure IP Allow.

Change Data Capture (CDC) with Logical Replication

Neon logical replication banner

Neon is pleased to announce support for logical replication, which brings Change Data Capture (CDC) to serverless Postgres. You can now stream data from your Neon database to a variety of external destinations, including data warehouses, analytical database services, messaging platforms, event-streaming platforms, and external Postgres databases. Logical replication is available to all Neon users.

To get started, jump into one of our step-by-step logical replication guides:

Also, check out these blog posts from Neon and Materialize:

Postgres version update

Supported Postgres versions were updated to 14.10, 15.5, and 16.1, respectively.

Fixes & improvements

  • Added the REPLICATION privilege to the neon_superuser role. The REPLICATION privilege was introduced with the release of logical replication support in Neon. Only the default Postgres role created with your Neon project and roles created using the Neon Console, CLI, or API are granted membership in the neon_superuser role, which includes the REPLICATION privilege. Granting the REPLICATION privilege to roles created via SQL is currently not permitted.
  • Added support for browser-issued SQL-over-HTTP batch queries using the Neon serverless driver. Batch queries were failing because Neon-Batch-Isolation-Level and Neon-Batch-Read-Only headers were missing from the server's OPTIONS response.

Quickstart

We've revised the Quickstart panel that appears at the top of the Neon project Dashboard after creating a new project. Follow this Quickstart to learn about passwordless authentication, installing the Neon CLI, integrating your apps with Neon, and importing data into your project.

Fixes & improvements

  • Fixed the Create Support Ticket form that is accessed from the Support link in the Neon Console sidebar. The form was not functioning properly.
  • Fixed the Cancel link in the drawer that opens when you request an integration on the Integrations page in the Neon Console. Clicking Cancel now closes the drawer, as expected.

Branch reset

Neon is pleased to announce the latest branching feature to help improve your development workflows: branch reset.

With one click, you can now update your working branch to the latest available schema and data from its parent branch, avoiding labor-intensive and error-prone manual updates or branch restorations. This action is available from both the Neon Console and the Neon CLI. For details, see Reset branch from parent.

Set context for the Neon CLI

Using a new neonctl command, set-context, you can now set a background context for your CLI sessions, letting you perform project or branch-specific actions without having to specify the project or branch id in every command. See Neon CLI commands — set-context for more detail.

Support for timescaledb 2.13.0 for Postgres 16

The timescaledb extension, version 2.13.0, which enables scalable inserts and complex queries for time-series data, is now available on Postgres 16.

For a complete list of Postgres extensions supported by Neon, see Postgres extensions.

Fixes & improvements

  • UI: Fixed an unresponsive Read-only (RO) radio button option that appears on the Create Compute Endpoint modal.
Edit this page
Was this page helpful?