Skip to main content
Neon Postgres Docs

Search documentation

Type to search this documentation.

On this pageOverview

Changelog Sep 18, 2026 - Neon

The Neon backend is generally available

Neon started as serverless Postgres. Now you get the whole backend, and all of it branches. Every branch is a full copy, so a PR, preview, or agent session gets your entire backend, not just the database. Evolve your schema, storage, auth, and functions together on a preview branch, isolated from production.

▶️ Watch the walkthrough to see how it all fits together.

How to get started

Building with a coding agent? neon skills installs the Neon agent skills into your assistant (Cursor, Claude Code, Codex, and more), so it knows how to provision and wire the whole backend.

Bash
neon skills

However you build, your whole backend is declared in one neon.ts file and applied with neon deploy, whether your agent writes it or you do:

TypeScript
// neon.ts
import { defineConfig } from '@neon/config/v1';

export default defineConfig({
  auth: true, // managed authentication
  buckets: { uploads: {} }, // S3-compatible object storage
  functions: { api: { source: './functions/api.ts' } }, // serverless compute
  aiGateway: true, // one API for many LLMs
});

Get started with How a Neon backend fits together or the full-stack quickstart, or scaffold a working example with neon bootstrap. Read the launch blog post for the full story.

Turn an upload into a pipeline or run a job on a schedule, without standing up a queue or a cron server. A Function Trigger invokes a deployed Function on a schedule or an event, and fires even when the compute is scaled to zero. Two trigger types are available now, with more on the way:

  • Schedule: a UTC cron expression, for recurring work like a nightly rollup or a health check.
  • Object created: fires when a file lands in an Object Storage bucket (optionally under a key prefix), so an upload can kick off processing like generating a thumbnail.

Declare a trigger in neon.ts, or use the Console, CLI, or API:

TypeScript
// neon.ts
functions: {
  reports: { name: 'Reports', source: './functions/reports.ts' },
},
triggers: {
  nightly: {
    type: 'schedule',
    function: 'reports',
    cron: '0 6 * * *',
  },
},

See Function Triggers.

Ship your public API or webhook on a domain you own, like api.example.com, instead of the native Neon URL. Point a CNAME at the target Neon gives you, and Neon provisions the TLS certificate automatically. Declare it in neon.ts:

TypeScript
// neon.ts
functions: {
  api: {
    source: './functions/api.ts',
    customDomains: ['api.example.com'],
  },
},

Domains are branch-scoped, so a preview branch can serve from its own hostname while production keeps yours. See Custom domains.

You can now buy prepaid credits for the AI Gateway from the Console. Credits draw down as you send inference requests, at provider list prices with no markup. See AI Gateway prepaid credits.

Object Storage, Functions, and AI Gateway now run in four AWS regions: US East (Ohio), US East (N. Virginia), Europe (Frankfurt), and Asia Pacific (Singapore), with more coming.

Turn on the backend when you create a project

Section titled “Turn on the backend when you create a project”

Adopting the backend now starts at project creation. You can now enable Object Storage, Functions, AI Gateway, and Auth alongside Postgres when you first create your project, so it comes up with your whole stack already wired. You will only see services that are supported in your selected region.

The create-project dialog with the Services section

The project Settings page has a cleaner, tabbed layout (General, Postgres, Networking, Credentials, Auth, Functions, HIPAA compliance, and Sharing) that groups related controls and labels project-wide settings as Applies to all branches. Setting your default branch on the General tab is now project-scoped: use Change default branch to pick any branch.

The redesigned, tabbed project Settings page

Organizations and account settings moved to the profile menu

Section titled “Organizations and account settings moved to the profile menu”

Switching and creating organizations, organization management, account settings, theme, Neon status, and help now live in one profile menu in the top-right corner of the Console.

The profile menu with organization switching and account settings
SDK
  • @neon/sdk uses named parameters. Resource methods now take a single named parameter object, for example neon.branches.get({ projectId, branchId }), instead of positional arguments. This is a breaking change; the SDK is now on v6. See the TypeScript SDK reference.
  • Parse trigger deliveries with @neon/functions. parseTriggerDelivery and parseTriggerInvocation from @neon/functions/triggers validate schedule and storage_object_created deliveries, so handlers don't hand-check headers.
neon.ts config
  • Backend services are GA in neon.ts. Declare aiGateway, functions, and buckets as top-level keys in defineConfig, alongside auth and dataApi. The old preview block still works but is deprecated and warns on neon deploy. See the neon.ts reference.
  • Declare Function triggers and custom domains in neon.ts. Custom domains and storage_object_created and schedule triggers can be declared in neon.ts and reconciled by neon deploy.
CLI
  • neon init scaffolds the Data API. You can now include the Data API when scaffolding a neon.ts. See the neon init reference.
New NAT gateway IPs and Private Networking endpoints in sa-east-1
  • Added NAT gateway IP addresses and a Private Networking VPC endpoint service name in AWS South America (São Paulo) (sa-east-1). If you allowlist Neon's outbound IPs, add the new addresses from the Regions page, or outbound connections can fail intermittently. If you use Private Networking in this region, add the new service name from the Private Networking guide.
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu