{"collection":{"slug":"serverless-postgres","name":"Serverless Postgres"},"digest":{"id":"cwd_wysNZ6eBoIzloUP3-VGlF","weekStart":"2026-09-14","title":"Neon turns Postgres branches into whole backend branches","intro":"Neon made its backend generally available, turning every branch into a full copy of schema, object storage, auth, and functions, while PlanetScale shipped TIN, a full-text search extension for Postgres.","body":"### The branch becomes the unit of everything\n\nThe week's biggest story is Neon's backend reaching GA. What started as serverless Postgres now branches as a complete backend: every PR, preview, or agent session gets its own copy of the schema, object storage, auth, and functions, not just a database fork. The [GA announcement](/release/rel_EmFLADkYGrpa6ZwZ1IIQJ-neon-backend-reaches-ga-with-branching-storage-auth-functions-and-ai-gateway) adds Function Triggers for schedules and object-created events, plus a declarative `neon.ts` config applied with `neon deploy`, which is the piece that makes the whole thing reproducible rather than click-ops.\n\nThe [primitive-by-primitive breakdown](/release/rel_LGN1CrehdzJl-XZUOi_B3-neon-backend-primitives-ga-lakebase-postgres-object-storage-functions-auth-and) explains the design intent: Lakebase Postgres, Object Storage, Functions, Managed Better Auth, and an AI Gateway, each exposed through standard interfaces so an agent can wire together a full backend without a bespoke integration layer. If you buy that framing, the interesting consequence is isolation — schema, storage, and auth evolve together on a preview branch, away from production, which is exactly the property that makes agent-driven changes tolerable.\n\nFor a counterpoint on how far branching goes in practice, Neon also published a [LuBot case study](/release/rel_BiMA6qofq7kQXHpcYjBFt-neon-publishes-lubot-case-study-on-database-per-tenant-architecture) on database-per-tenant architecture: a Stripe webhook provisions a deterministically named branch per paying customer, migrates schema, and stores the connection URL on the user row. It's a useful read on the sharp edges too — PgBouncer transaction mode drops session state and `search_path` settings — and on leaning on autoscaling with scale-to-zero for idle tenants.\n\n### Full-text search, split across prod and CI\n\nPlanetScale introduced [TIN](/release/rel_lYDTxFWt-WCRXYNlrq9h0-planetscale-launches-tin-a-postgres-full-text-search-extension), a Postgres full-text search extension that keeps the ergonomics of Postgres: `CREATE INDEX` to build, `WHERE column ==> 'terms...'` to query, BM25 to rank, with backups and transactions behaving normally and claimed 3-30x speedups over competing search indexes. Either the syntax works for you or it doesn't, but it's a small footprint to try.\n\nThe companion move is more interesting than it looks. [Lead](/release/rel_PViDVwVXn39ouIPLlFtFn-planetscale-releases-open-source-lead-full-text-search-extension-for-postgres-ci) is an open-source extension with the same features, built to run in CI, dev, and staging — even fully offline — so your test suite exercises real search behavior without depending on a hosted service. The caveat is explicit: it slows down once indexed text passes a few MB, so production stays on TIN. That's a deliberate dev/prod split rather than a single extension stretched across both, and it's worth knowing before you standardize on one.\n\n### Vitess operations get per-keyspace knobs\n\nPlanetScale's Vitess surface accumulated a set of finer-grained controls this week, most of them aimed at shrinking the blast radius of routine operations. You can now [attach an existing MySQL database as an external keyspace](/release/rel_mO7LLhQz1NAiaIFIF3Yk8-planetscale-adds-external-vitess-keyspaces-to-attach-mysql-databases) and query it through Vitess without importing first. Per-shard VTTablet sizing lets [a single shard get more CPU, memory, or Metal storage](/release/rel_nBTZsKy_VjOzvA6BUlMoY-planetscale-adds-per-shard-sizing-for-vitess-keyspaces) without resizing the whole keyspace, and [keyspace shard rollout concurrency](/release/rel_vAJU4j0BL1tZANF26WMv2-planetscale-adds-per-keyspace-control-of-shard-rollout-concurrency) is now tunable from 1 to 32. Guardrails arrived alongside: a [per-keyspace tablet throttler with a configurable lag threshold](/release/rel_WsjJMiqVDyha4Egccmey5-planetscale-adds-per-keyspace-tablet-throttler-toggle-and-lag-threshold) that pauses migrations and VReplication when replication falls behind, and [Neki extensions manageable by name](/release/rel_WjFBuXAUWIxm0oIh-x6uc-planetscale-adds-terraform-and-cli-support-for-managing-neki-extensions-by-name) through Terraform and the CLI.\n\nThe CLI kept pace across several releases, adding [MoveTables workflows via `pscale branch vtctld`](/release/rel_T1KRaE9PW9u3sO7udnlT7-planetscale-cli-adds-vitess-movetables-workflows-via-pscale-branch-vtctld) with a `next_steps` field to point you at the next command, [external keyspace creation and rollout settings](/release/rel_Qedg2AfMue14j3JOpwS4k-planetscale-cli-v0-336-0-adds-external-keyspace-creation-and-rollout-concurrency), and [throttler flags](/release/rel_HUzcZ41MDx7n5vV-fXlNs-planetscale-cli-v0-333-0-adds-throttler-flags-to-keyspace-update-settings). A [SQL injection fix in D1 import CHECK expression parsing](/release/rel_B0LZNIewYhp4Nfx4NHbAz-planetscale-cli-v0-337-0-fixes-sql-injection-in-d1-import-parsing) rounds out the security side.\n\n### Smaller repairs\n\nSupabase's week was mostly plumbing: the CLI config package landed a run of versions refining the [ProjectConfig type and schema](/release/rel_fpAbBkGP3KJqIiTOo86ZE-supabase-cli-config-v0-8-0-excludes-local-only-paths-from-projectconfig-type-and) to exclude local-only paths, moving [schema-tooling shadows onto EphemeralPostgres](/release/rel_KzJ1zJaSLSg53nmqkd9YQ-supabase-cli-config-v0-9-0-uses-stack-ephemeralpostgres-for-schema-tooling), and fixing [atomic write failures leaving temp files behind](/release/rel_8DK3SHCky351c6SyfshVv-supabase-cli-config-v0-7-2-preserves-atomic-write-failures-and-cleans-temp-files). Experimental [stack status](/release/rel_P8TTIvrh-FZTc2yyT3xeJ-supabase-cli-config-v0-7-0-adds-experimental-stack-status) appeared in the CLI, and the client SDK began [forwarding the mediation option to passkey sign-in](/release/rel_fgCa9DdConCcWJ_kIxQZk-supabase-client-sdk-v2-117-0-canary-0-forwards-mediation-option-to-passkey-sign). Beyond those, the week's long tail — beta and canary cuts across Supabase CLI and Auth, libSQL, and Prisma's language tools — is steady churn without a headline worth pulling out.","releaseIds":["rel_EmFLADkYGrpa6ZwZ1IIQJ","rel_LGN1CrehdzJl-XZUOi_B3","rel_BiMA6qofq7kQXHpcYjBFt","rel_lYDTxFWt-WCRXYNlrq9h0","rel_PViDVwVXn39ouIPLlFtFn","rel_mO7LLhQz1NAiaIFIF3Yk8","rel_nBTZsKy_VjOzvA6BUlMoY","rel_vAJU4j0BL1tZANF26WMv2","rel_WsjJMiqVDyha4Egccmey5","rel_WjFBuXAUWIxm0oIh-x6uc","rel_T1KRaE9PW9u3sO7udnlT7","rel_Qedg2AfMue14j3JOpwS4k","rel_HUzcZ41MDx7n5vV-fXlNs","rel_B0LZNIewYhp4Nfx4NHbAz","rel_fpAbBkGP3KJqIiTOo86ZE","rel_KzJ1zJaSLSg53nmqkd9YQ","rel_8DK3SHCky351c6SyfshVv","rel_P8TTIvrh-FZTc2yyT3xeJ","rel_fgCa9DdConCcWJ_kIxQZk"],"releaseCount":60,"generatedAt":"2026-09-21T06:16:30.546Z","releases":[{"id":"rel_EmFLADkYGrpa6ZwZ1IIQJ","title":"Neon backend reaches GA with branching storage, auth, functions, and AI gateway","path":"/release/rel_EmFLADkYGrpa6ZwZ1IIQJ-neon-backend-ga-storage-auth-functions-all-branch","org":{"slug":"neon","name":"Neon"},"importance":5},{"id":"rel_LGN1CrehdzJl-XZUOi_B3","title":"Neon backend primitives GA: Lakebase Postgres, Object Storage, Functions, Auth, and AI Gateway","path":"/release/rel_LGN1CrehdzJl-XZUOi_B3-neon-backend-primitives-now-ga-for-agents","org":{"slug":"neon","name":"Neon"},"importance":4},{"id":"rel_BiMA6qofq7kQXHpcYjBFt","title":"Neon publishes LuBot case study on database-per-tenant architecture","path":"/release/rel_BiMA6qofq7kQXHpcYjBFt-lubot-case-study-database-per-tenant-on-neon","org":{"slug":"neon","name":"Neon"},"importance":2},{"id":"rel_lYDTxFWt-WCRXYNlrq9h0","title":"PlanetScale launches TIN, a Postgres full-text search extension","path":"/release/rel_lYDTxFWt-WCRXYNlrq9h0-tin-brings-bm25-full-text-search-to-postgres","org":{"slug":"planetscale","name":"PlanetScale"},"importance":4},{"id":"rel_PViDVwVXn39ouIPLlFtFn","title":"PlanetScale releases open-source Lead full-text search extension for Postgres CI","path":"/release/rel_PViDVwVXn39ouIPLlFtFn-open-source-lead-brings-postgres-full-text-search-to-ci","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_mO7LLhQz1NAiaIFIF3Yk8","title":"PlanetScale adds external Vitess keyspaces to attach MySQL databases","path":"/release/rel_mO7LLhQz1NAiaIFIF3Yk8-external-vitess-keyspaces-attach-existing-mysql-databases","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_nBTZsKy_VjOzvA6BUlMoY","title":"PlanetScale adds per-shard sizing for Vitess keyspaces","path":"/release/rel_nBTZsKy_VjOzvA6BUlMoY-per-shard-sizing-for-vitess-keyspaces","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_vAJU4j0BL1tZANF26WMv2","title":"PlanetScale adds per-keyspace control of shard rollout concurrency","path":"/release/rel_vAJU4j0BL1tZANF26WMv2-keyspace-shard-rollout-concurrency-now-configurable-up-to-32","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_WsjJMiqVDyha4Egccmey5","title":"PlanetScale adds per-keyspace tablet throttler toggle and lag threshold","path":"/release/rel_WsjJMiqVDyha4Egccmey5-tablet-throttler-now-toggleable-per-keyspace","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_WjFBuXAUWIxm0oIh-x6uc","title":"PlanetScale adds Terraform and CLI support for managing Neki extensions by name","path":"/release/rel_WjFBuXAUWIxm0oIh-x6uc-neki-extensions-manageable-by-name-in-terraform-and-cli","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_T1KRaE9PW9u3sO7udnlT7","title":"PlanetScale CLI adds Vitess MoveTables workflows via pscale branch vtctld","path":"/release/rel_T1KRaE9PW9u3sO7udnlT7-vitess-movetables-now-runnable-from-pscale-cli","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_Qedg2AfMue14j3JOpwS4k","title":"PlanetScale CLI v0.336.0 adds external keyspace creation and rollout concurrency settings","path":"/release/rel_Qedg2AfMue14j3JOpwS4k-external-keyspace-creation-keyspace-rollout-concurrency-settings","org":{"slug":"planetscale","name":"PlanetScale"},"importance":2},{"id":"rel_HUzcZ41MDx7n5vV-fXlNs","title":"PlanetScale CLI v0.333.0 adds throttler flags to keyspace update-settings","path":"/release/rel_HUzcZ41MDx7n5vV-fXlNs-throttler-flags-added-to-keyspace-update-settings","org":{"slug":"planetscale","name":"PlanetScale"},"importance":2},{"id":"rel_B0LZNIewYhp4Nfx4NHbAz","title":"PlanetScale CLI v0.337.0 fixes SQL injection in D1 import parsing","path":"/release/rel_B0LZNIewYhp4Nfx4NHbAz-sql-injection-in-d1-import-check-parsing-fixed","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_fpAbBkGP3KJqIiTOo86ZE","title":"Supabase CLI config v0.8.0 excludes local-only paths from ProjectConfig type and schema","path":"/release/rel_fpAbBkGP3KJqIiTOo86ZE-projectconfig-excludes-local-only-paths-from-type-and-schema","org":{"slug":"supabase","name":"Supabase"},"importance":3},{"id":"rel_KzJ1zJaSLSg53nmqkd9YQ","title":"Supabase CLI config v0.9.0 uses stack EphemeralPostgres for schema-tooling shadows","path":"/release/rel_KzJ1zJaSLSg53nmqkd9YQ-schema-tooling-shadows-switch-to-stack-ephemeralpostgres","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_8DK3SHCky351c6SyfshVv","title":"Supabase CLI config v0.7.2 preserves atomic write failures and cleans temp files","path":"/release/rel_8DK3SHCky351c6SyfshVv-atomic-write-failures-preserved-temp-files-cleaned-up","org":{"slug":"supabase","name":"Supabase"},"importance":1},{"id":"rel_P8TTIvrh-FZTc2yyT3xeJ","title":"Supabase CLI config v0.7.0 adds experimental stack status","path":"/release/rel_P8TTIvrh-FZTc2yyT3xeJ-experimental-stack-status-added","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_fgCa9DdConCcWJ_kIxQZk","title":"Supabase Client SDK v2.117.0-canary.0 forwards mediation option to passkey sign-in","path":"/release/rel_fgCa9DdConCcWJ_kIxQZk-passkey-sign-in-forwards-mediation-option","org":{"slug":"supabase","name":"Supabase"},"importance":1}]}}