More storage on the Free plan

The Neon Free plan now gives you 1 GB of database storage per project, up from 0.5 GB. Existing projects pick up the new limit automatically. It was one of the most requested Free plan changes.
The extra storage builds on an already-generous plan: you get up to 100 projects on the Free plan, each with its own compute, storage, and egress. Spin up a new project for every app idea, experiment, or client demo, without paying for each project separately.
Read more in the blog post: Neon gives you 100 projects for free, with 1 GB of Postgres storage each, or see Neon plans for the full breakdown.
Embedding models in the Neon AI Gateway
The Neon AI Gateway now supports embedding models, so you can turn text into vectors through the same OpenAI-compatible endpoint and Neon credential you already use for chat. Call /v1/embeddings with either model:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.NEON_AI_GATEWAY_TOKEN,
baseURL: `${process.env.NEON_AI_GATEWAY_BASE_URL}/v1`,
});
const { data } = await client.embeddings.create({
model: 'qwen3-embedding-0-6b', // or 'gte-large-en'
input: 'The quick brown fox jumps over the lazy dog.',
encoding_format: 'float',
});
// data[0].embedding is a 1024-dimension vectorBoth models (qwen3-embedding-0-6b and gte-large-en) return 1024-dimension vectors and are billed on input tokens only. Store and search the vectors on the same branch as your data with Lakebase Search or pgvector. For the full reference, including the dimensions parameter and response format, see the Embeddings guide.
Effect bindings for the Neon SDK
Effect is a TypeScript library for building resilient apps, with typed errors, retries, timeouts, and cancellation built in. The new @neon/effect package wraps the Neon Management SDK in Effect v4, so managing your Neon projects fits that model: every API call returns an Effect, paginated lists return a Stream, and SDK errors are tagged for Effect.catchTag. Interrupting a fiber cancels the in-flight request and readiness polling, so retries, timeouts, and cancellation compose with the rest of your program.
import { Neon, layerConfig } from '@neon/effect';
import { Effect, Stream } from 'effect';
const program = Effect.gen(function* () {
const neon = yield* Neon;
return yield* neon.projects.list().pipe(Stream.take(10), Stream.runCollect);
});
Effect.runPromise(program.pipe(Effect.provide(layerConfig)));Install @neon/effect alongside effect v4. Read more in the blog post: Announcing @neon/effect, or see the Effect bindings reference.
Fixes & improvements
Postgres extension updates
- Updated PostGIS and its related geospatial extensions (
postgis,postgis_raster,postgis_sfcgal,postgis_tiger_geocoder,postgis_topology,address_standardizer, andaddress_standardizer_data_us) to newer versions: 3.3.10 on Postgres 14 through 16, 3.5.7 on Postgres 17, and 3.6.4 on Postgres 18. To upgrade an existing installation, see Update an extension version. - Updated the
hllextension (HyperLogLog data type) to version 2.21 across all supported Postgres versions.
AI Gateway enhancements
- The
@neon/ai-sdk-provider(1.0.0) now supports embeddings.neon.embeddingModel('qwen3-embedding-0-6b')works with the Vercel AI SDK'sembed()andembedMany(), routed through the AI Gateway with your Neon credential, so you no longer have to call the endpoint outside the provider. See Embeddings. - AI Gateway error responses are now consistent and safe to parse: every upstream (non-2xx) error returns a flat
{"error_code","message"}envelope with the upstream status preserved, and upstream internal details are no longer passed through. Rate-limit and spend-limit errors now state which limit was hit and how to recover. See AI Gateway troubleshooting.
Neon Functions improvements
- You can now delete an inherited function on a child branch. Deletion is branch-local: it removes the function from that branch only, leaving the parent and sibling branches untouched. Previously this returned a 404. See Delete a function.
Serverless driver
- Connection parameters (
@neondatabase/serverless1.2.0). The Neon serverless driver'sneon(),query, andtransactionfunctions now accept individual connection parameters,user,password,host,port,database, andconnectionString, that supplement, override, or fully replace a connection string. Each can be a string or a sync/async function resolved on every query, so you can supply short-lived credentials (such as an OIDC token used as the password) without rebuilding the connection string. Upgrade withnpm install @neondatabase/serverless@latest. See Connection parameters. - The JavaScript Registry (JSR) publication of the Neon serverless driver (
@neon/serverless) is deprecated and no longer updated. The driver itself is unchanged and fully supported: install it from npm as@neondatabase/serverless. Runtimes that consume JSR packages, including Deno, can install the npm package directly (for example,deno add npm:@neondatabase/serverless). See the Neon serverless driver docs.
Neon Console Tables page updates
- The Tables page in the Neon Console, where you browse and edit your data, is powered by a Drizzle Studio integration. That integration has been updated to version 1.6.0. For the improvements and fixes in this version, see the Neon Drizzle Studio Integration Changelog.
Neon MCP server updates
- The
explain_sql_statementtool is now safe by default. Itsanalyzeoption defaults tofalse, so a plainEXPLAINreturns the query plan without running your statement. To get real execution metrics, you can passanalyze: trueto runEXPLAIN ANALYZE, which executes the statement and can have side effects, so writes persist if your query modifies data. See Neon MCP server. - Project tools now work on project-scoped MCP connections. You can connect the MCP server to your whole Neon account or scope it to a single project (for example, ChatGPT and Codex connect to one project at a time). Tools that act on a project, such as
run_sql, previously failed on a project-scoped connection. Now they all take the same optionalproject_id: on a project-scoped connection it's filled in for you, and on an account-wide connection you pass it as before. See Neon MCP server. - We refreshed the tools the Neon MCP server gives to AI agents. The
create_triggerandupdate_triggertools can now set up object-upload triggers (storage_object_created) that run a Neon Function whenever a file is uploaded to Object Storage. Andcreate_storage_bucketis now flagged as potentially public-facing: because a bucket'saccess_levelcan make its contents readable by anyone, an agent treats creating one as something to be careful with rather than a routine internal action. See Object Storage and Function Triggers.
Neon CLI and agent skill updates
neon linknow writes a complete context to the.neonfile: the organization (when the project has one), the project, and the branch. Org-only, unpinned, or--no-checkslinks without--branchnow fail, so a linked directory always resolves to a specific branch. See neon link. To pick up this and other recent changes, upgrade your Neon CLI client.- The Neon agent skills now include a neon-auth skill, so coding agents can set up and work with Neon Auth alongside the existing Postgres, Functions, Object Storage, and AI Gateway skills.
neon.tsis Neon's config-as-code file, where you declare the services a project uses, such as Auth, the Data API, and Functions. The newneon config addcommand adds one of those services to an existingneon.tsfor you (for example,neon config add auth), so you don't have to edit the file by hand. See neon config.








