> Full Neon documentation index: https://neon.com/docs/llms.txt

# More storage for your 100 Free plan projects

## More storage on the Free plan

![1 GB of storage per project on the Neon Free plan](https://neon.com/docs/changelog/1-gb-storage.png)

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](https://neon.com/blog/neon-free-plan-1-gb-per-project), or see [Neon plans](https://neon.com/docs/introduction/plans) for the full breakdown.

## Embedding models in the Neon AI Gateway

The Neon AI Gateway now supports [embedding models](https://neon.com/docs/ai-gateway/embeddings), 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:

```js
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 vector
```

Both 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](https://neon.com/docs/ai/lakebase-search) or [pgvector](https://neon.com/docs/extensions/pgvector). For the full reference, including the `dimensions` parameter and response format, see the [Embeddings](https://neon.com/docs/ai-gateway/embeddings) guide.

## Effect bindings for the Neon SDK

[Effect](https://effect.website) 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](https://neon.com/docs/reference/typescript-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.

```ts
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](https://neon.com/blog/announcing-neon-effect), or see the [Effect bindings](https://neon.com/docs/reference/effect-sdk) reference.

## Fixes & improvements

<details>

<summary>**Postgres extension updates**</summary>

- Updated PostGIS and its related geospatial extensions (`postgis`, `postgis_raster`, `postgis_sfcgal`, `postgis_tiger_geocoder`, `postgis_topology`, `address_standardizer`, and `address_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](https://neon.com/docs/extensions/pg-extensions#update-an-extension-version).
- Updated the [`hll`](https://github.com/citusdata/postgresql-hll) extension (HyperLogLog data type) to version 2.21 across all supported Postgres versions.

</details>

<details>

<summary>**AI Gateway enhancements**</summary>

- The [`@neon/ai-sdk-provider`](https://www.npmjs.com/package/@neon/ai-sdk-provider) (1.0.0) now supports embeddings. `neon.embeddingModel('qwen3-embedding-0-6b')` works with the Vercel AI SDK's `embed()` and `embedMany()`, routed through the AI Gateway with your Neon credential, so you no longer have to call the endpoint outside the provider. See [Embeddings](https://neon.com/docs/ai-gateway/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](https://neon.com/docs/ai-gateway/troubleshooting).

</details>

<details>

<summary>**Neon Functions improvements**</summary>

- 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](https://neon.com/docs/compute/functions/deploy#delete-a-function).

</details>

<details>

<summary>**Serverless driver**</summary>

- **Connection parameters (`@neondatabase/serverless` 1.2.0).** The Neon serverless driver's `neon()`, `query`, and `transaction` functions now accept individual connection parameters, `user`, `password`, `host`, `port`, `database`, and `connectionString`, 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 with `npm install @neondatabase/serverless@latest`. See [Connection parameters](https://neon.com/docs/serverless/serverless-driver#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`](https://www.npmjs.com/package/@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](https://neon.com/docs/serverless/serverless-driver) docs.

</details>

<details>

<summary>**Neon Console Tables page updates**</summary>

- The [**Tables** page](https://neon.com/docs/guides/tables) 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](https://github.com/neondatabase/neon-drizzle-studio-changelog/blob/main/CHANGELOG.md).

</details>

<details>

<summary>**Neon MCP server updates**</summary>

- The `explain_sql_statement` tool is now safe by default. Its `analyze` option defaults to `false`, so a plain `EXPLAIN` returns the query plan without running your statement. To get real execution metrics, you can pass `analyze: true` to run `EXPLAIN ANALYZE`, which executes the statement and can have side effects, so writes persist if your query modifies data. See [Neon MCP server](https://neon.com/docs/ai/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 optional `project_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](https://neon.com/docs/ai/neon-mcp-server).
- We refreshed the tools the Neon MCP server gives to AI agents. The `create_trigger` and `update_trigger` tools can now set up object-upload triggers (`storage_object_created`) that run a Neon Function whenever a file is uploaded to Object Storage. And `create_storage_bucket` is now flagged as potentially public-facing: because a bucket's `access_level` can 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](https://neon.com/docs/storage/overview) and [Function Triggers](https://neon.com/docs/compute/functions/triggers/object-storage).

</details>

<details>

<summary>**Neon CLI and agent skill updates**</summary>

- `neon link` now writes a complete context to the `.neon` file: the organization (when the project has one), the project, and the branch. Org-only, unpinned, or `--no-checks` links without `--branch` now fail, so a linked directory always resolves to a specific branch. See [neon link](https://neon.com/docs/cli/link). To pick up this and other recent changes, [upgrade your Neon CLI client](https://neon.com/docs/cli/install#upgrade).
- The Neon [agent skills](https://neon.com/docs/ai/agent-skills) now include a **neon-auth** skill, so coding agents can set up and work with [Neon Auth](https://neon.com/docs/auth/overview) alongside the existing Postgres, Functions, Object Storage, and AI Gateway skills.
- `neon.ts` is Neon's [config-as-code file](https://neon.com/docs/reference/neon-ts), where you declare the services a project uses, such as Auth, the Data API, and Functions. The new `neon config add` command adds one of those services to an existing `neon.ts` for you (for example, `neon config add auth`), so you don't have to edit the file by hand. See [neon config](https://neon.com/docs/cli/config).

</details>
