BetaWeekly digests are a beta — we're trying something new. Feedback welcome.
Neon turns Postgres branches into whole backend branches
September 14–20, 2026
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.
The branch becomes the unit of everything
The 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 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.
The primitive-by-primitive breakdown 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.
For a counterpoint on how far branching goes in practice, Neon also published a LuBot case study 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.
Full-text search, split across prod and CI
PlanetScale introduced TIN, 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.
The companion move is more interesting than it looks. Lead 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.
Vitess operations get per-keyspace knobs
PlanetScale'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 and query it through Vitess without importing first. Per-shard VTTablet sizing lets a single shard get more CPU, memory, or Metal storage without resizing the whole keyspace, and keyspace shard rollout concurrency is now tunable from 1 to 32. Guardrails arrived alongside: a per-keyspace tablet throttler with a configurable lag threshold that pauses migrations and VReplication when replication falls behind, and Neki extensions manageable by name through Terraform and the CLI.
The CLI kept pace across several releases, adding MoveTables workflows via pscale branch vtctld with a next_steps field to point you at the next command, external keyspace creation and rollout settings, and throttler flags. A SQL injection fix in D1 import CHECK expression parsing rounds out the security side.
Smaller repairs
Supabase's week was mostly plumbing: the CLI config package landed a run of versions refining the ProjectConfig type and schema to exclude local-only paths, moving schema-tooling shadows onto EphemeralPostgres, and fixing atomic write failures leaving temp files behind. Experimental stack status appeared in the CLI, and the client SDK began forwarding the mediation option to passkey sign-in. 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.
Releases covered19
- PlanetScale launches TIN, a Postgres full-text search extension
- PlanetScale releases open-source Lead full-text search extension for Postgres CI
- PlanetScale adds external Vitess keyspaces to attach MySQL databases
- PlanetScale adds per-shard sizing for Vitess keyspaces
- PlanetScale adds per-keyspace control of shard rollout concurrency
- PlanetScale adds per-keyspace tablet throttler toggle and lag threshold
- PlanetScale adds Terraform and CLI support for managing Neki extensions by name
- PlanetScale CLI adds Vitess MoveTables workflows via pscale branch vtctld
- PlanetScale CLI v0.336.0 adds external keyspace creation and rollout concurrency settings
- PlanetScale CLI v0.333.0 adds throttler flags to keyspace update-settings
- PlanetScale CLI v0.337.0 fixes SQL injection in D1 import parsing
- Supabase CLI config v0.8.0 excludes local-only paths from ProjectConfig type and schema
- Supabase CLI config v0.9.0 uses stack EphemeralPostgres for schema-tooling shadows
- Supabase CLI config v0.7.2 preserves atomic write failures and cleans temp files
- Supabase CLI config v0.7.0 adds experimental stack status
- Supabase Client SDK v2.117.0-canary.0 forwards mediation option to passkey sign-in