{"collection":{"slug":"serverless-postgres","name":"Serverless Postgres"},"digest":{"id":"cwd_RQ-NQZuACuRxYDNzgeOg9","weekStart":"2026-07-13","title":"Neon expands to a full backend platform","intro":"Neon launched Object Storage, Functions, and AI Gateway in beta, turning serverless Postgres into a complete backend platform. PlanetScale shipped hardware and observability upgrades, and Supabase brought cross-service logging into open beta.","body":"### Neon's backend betas go live\n\nThe defining story of the week is [Neon's expansion beyond Postgres into a full backend platform](/release/rel_0CayOgWXvh5RdB_xO0JjV-neon-backend-beta-typescript-sdk-passkey-support-and-git-style-cli-diffs). Three new services — Object Storage, Functions, and AI Gateway — graduated from private preview to beta and are now available to all users on existing projects in AWS US East (Ohio). Object Storage offers S3-compatible storage that branches with your data, Functions provides long-running Node.js 24 HTTP handlers deployed next to your database, and AI Gateway gives one credential and endpoint for seven model providers backed by Databricks. You can declare your entire backend in a single `neon.ts` file, and it branches with your data — fork a branch and you get an isolated copy of your database, storage, functions, and AI gateway configuration. The [accompanying blog post](/release/rel_WlOw5J5poMxxB_V_h9RPk-neon-launches-backend-suite-beta-object-storage-functions-and-ai-gateway) notes all three are free during beta. Alongside these betas, Neon shipped a new [TypeScript SDK (`@neon/sdk`)](/release/rel_0CayOgWXvh5RdB_xO0JjV-neon-backend-beta-typescript-sdk-passkey-support-and-git-style-cli-diffs) that replaces `@neondatabase/api-client`, added passkey sign-in, and introduced a Git-style `diff` command in the CLI.\n\n### PlanetScale adds dense storage and deeper observability\n\nPlanetScale announced [i8ge Metal instances](/release/rel__t7dUE5zgTKZqc0izEQKS-planetscale-launches-i8ge-metal-instances-with-larger-local-nvme-storage) with locally-attached NVMe drives ranging from 1.25 TB on the M-160 to 60 TB on the M-7680, available across eight AWS regions. For teams managing connection pooling, the [Terraform provider v1.5.0](/release/rel_oarGxOL44QIreIxYsXvHU-planetscale-terraform-provider-v1-5-0-adds-dedicated-pgbouncer-management) adds a `planetscale_postgres_bouncer` resource for managing dedicated PgBouncers with drift detection. On the observability side, [Query Insights](/release/rel_BISvOcj2vHPCO8pETXLYS-planetscale-adds-full-size-metric-graphs-to-query-insights) now includes a graph tab for plotting time series of any metric — CPU, I/O, rows read, block cache hit ratio — and sparklines in the query table navigate directly to the detailed view. A [schema change approval workflow](/release/rel_17N5sDE_sPn36kh6LZpTW-planetscale-auto-dismisses-deploy-request-approvals-on-schema-changes) was also hardened: deploy request approvals are now automatically dismissed whenever the underlying schema changes, with `planetscale-bot` commenting on the changes and removing approved requests from the deploy queue.\n\n### Supabase: unified logging and CLI hardening\n\n[Supabase Unified Logs](/release/rel_YZ7sfx2mDwv9HDvePpJej-supabase-unified-logs-enters-open-beta-with-cross-service-search) entered open beta, bringing logs from every service — API gateway, Postgres, Auth, Storage, PostgREST, Realtime, and connection poolers — into one searchable view with a live tail, histogram timeline, and request-level detail panels. This replaces the previous workflow of jumping between separate log pages to correlate a single request. The CLI received several improvements: [API keys are now redacted from terminal output](/release/rel_JvoRp_cj-RQ8Ag6t6wSGx-supabase-cli-v2-110-0-beta-31-redacts-api-keys-from-terminal-output), [configless type generation was restored](/release/rel_imRrA5hdGgdknUcvnxEGF-supabase-cli-v2-110-0-beta-29-restores-configless-type-generation), and a [new lint detects local API exposure](/release/rel_51qZqPsMm2PrNb35aM9kR-supabase-cli-v2-110-0-beta-30-detects-local-api-exposure-lints). The JS client SDK shipped a series of fixes including [preserving the PKCE verifier](/release/rel_kzAeAg8ya58NDXcsgKPOp-supabase-js-client-sdk-v2-110-3-preserves-pkce-verifier-and-pins-tstyche-target) in the auth flow, [stopping API key leaks in function call Authorization headers](/release/rel_Band_jSf-ox2aJ7ye1uHp-supabase-js-client-sdk-v2-110-4-stops-sending-api-key-in-function-calls), and [correctly typing self-referencing embeds as arrays](/release/rel_S42Vn6h9iLRsq7Hd4Y2-K-supabase-js-client-sdk-v2-110-6-fixes-self-referencing-embed-types-and-realtime). Auth v2.193.0 added [experimental provider linking-domain groups](/release/rel__PRgIv7qjAyLbGPlSR26s-supabase-auth-v2-193-0-links-provider-domains-and-downgrades-session-aal-on) and downgrades session AAL when an admin deletes a MFA factor.\n\n### Turso and the broader ecosystem\n\nTurso published an intriguing [engineering deep-dive on running unmodified Doom in the SQLite bytecode language](/release/rel_EdOcHy_7qcemsysy5rMQp-running-unmodified-doom-in-the-sqlite-bytecode-language), and announced they're [building a modern Postgres implementation in Rust](/release/rel_toOzi8NOPS-pNPUR9L1ht-we-re-building-postgres-in-rust-using-the-llvm-of-databases). A [tutorial on building a retrieval pipeline with Turso and Voyage AI](/release/rel_8HJlFaqoMO9dpIPZ3lvnU-building-a-retrieval-pipeline-with-turso-and-voyage-ai) was also published. The [Turso CLI v1.0.30](/release/rel_gAf3V3PW9s-TlrRsvOiTC-v1-0-30) made the org JWKS template endpoint a POST request.","releaseIds":["rel_0CayOgWXvh5RdB_xO0JjV","rel_WlOw5J5poMxxB_V_h9RPk","rel__t7dUE5zgTKZqc0izEQKS","rel_oarGxOL44QIreIxYsXvHU","rel_BISvOcj2vHPCO8pETXLYS","rel_17N5sDE_sPn36kh6LZpTW","rel_YZ7sfx2mDwv9HDvePpJej","rel_JvoRp_cj-RQ8Ag6t6wSGx","rel_imRrA5hdGgdknUcvnxEGF","rel_51qZqPsMm2PrNb35aM9kR","rel_kzAeAg8ya58NDXcsgKPOp","rel_Band_jSf-ox2aJ7ye1uHp","rel_S42Vn6h9iLRsq7Hd4Y2-K","rel__PRgIv7qjAyLbGPlSR26s","rel_EdOcHy_7qcemsysy5rMQp","rel_toOzi8NOPS-pNPUR9L1ht","rel_8HJlFaqoMO9dpIPZ3lvnU","rel_gAf3V3PW9s-TlrRsvOiTC"],"releaseCount":42,"generatedAt":"2026-07-20T06:17:29.652Z","releases":[{"id":"rel_0CayOgWXvh5RdB_xO0JjV","title":"Neon backend beta, TypeScript SDK, passkey support, and Git-style CLI diffs","path":"/release/rel_0CayOgWXvh5RdB_xO0JjV-backend-beta-typescript-sdk-passkey-support-and-cli-diffs","org":{"slug":"neon","name":"Neon"},"importance":4},{"id":"rel_WlOw5J5poMxxB_V_h9RPk","title":"Neon launches backend suite beta: Object Storage, Functions, and AI Gateway","path":"/release/rel_WlOw5J5poMxxB_V_h9RPk-object-storage-functions-and-ai-gateway-now-beta","org":{"slug":"neon","name":"Neon"},"importance":4},{"id":"rel__t7dUE5zgTKZqc0izEQKS","title":"PlanetScale launches i8ge Metal instances with larger local NVMe storage","path":"/release/rel__t7dUE5zgTKZqc0izEQKS-i8ge-metal-instances-ship-with-up-to-60-tb-nvme","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_oarGxOL44QIreIxYsXvHU","title":"PlanetScale Terraform provider v1.5.0 adds dedicated PgBouncer management","path":"/release/rel_oarGxOL44QIreIxYsXvHU-dedicated-pgbouncers-manageable-via-terraform","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_BISvOcj2vHPCO8pETXLYS","title":"PlanetScale adds full-size metric graphs to Query Insights","path":"/release/rel_BISvOcj2vHPCO8pETXLYS-query-insights-now-graphs-any-metric-sparklines-go-to-detail","org":{"slug":"planetscale","name":"PlanetScale"},"importance":3},{"id":"rel_17N5sDE_sPn36kh6LZpTW","title":"PlanetScale auto-dismisses deploy request approvals on schema changes","path":"/release/rel_17N5sDE_sPn36kh6LZpTW-deploy-request-approvals-auto-dismiss-on-schema-changes","org":{"slug":"planetscale","name":"PlanetScale"},"importance":4},{"id":"rel_YZ7sfx2mDwv9HDvePpJej","title":"Supabase Unified Logs enters open beta with cross-service search","path":"/release/rel_YZ7sfx2mDwv9HDvePpJej-unified-logs-open-beta-one-searchable-view-across-all-services","org":{"slug":"supabase","name":"Supabase"},"importance":3},{"id":"rel_JvoRp_cj-RQ8Ag6t6wSGx","title":"Supabase CLI v2.110.0-beta.31 redacts API keys from terminal output","path":"/release/rel_JvoRp_cj-RQ8Ag6t6wSGx-api-keys-redacted-from-terminal-output","org":{"slug":"supabase","name":"Supabase"},"importance":3},{"id":"rel_imRrA5hdGgdknUcvnxEGF","title":"Supabase CLI v2.110.0-beta.29 restores configless type generation","path":"/release/rel_imRrA5hdGgdknUcvnxEGF-configless-type-generation-restored","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_51qZqPsMm2PrNb35aM9kR","title":"Supabase CLI v2.110.0-beta.30 detects local API exposure lints","path":"/release/rel_51qZqPsMm2PrNb35aM9kR-local-api-exposure-lints-now-detected","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_kzAeAg8ya58NDXcsgKPOp","title":"Supabase JS Client SDK v2.110.3 preserves PKCE verifier and pins tstyche target","path":"/release/rel_kzAeAg8ya58NDXcsgKPOp-pkce-verifier-preserved-tstyche-target-pinned","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_Band_jSf-ox2aJ7ye1uHp","title":"Supabase JS Client SDK v2.110.4 stops sending API key in function calls","path":"/release/rel_Band_jSf-ox2aJ7ye1uHp-api-key-no-longer-sent-in-function-authorization-header-utf-8-broadcast-headers","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_S42Vn6h9iLRsq7Hd4Y2-K","title":"Supabase JS Client SDK v2.110.6 fixes self-referencing embed types and realtime opts","path":"/release/rel_S42Vn6h9iLRsq7Hd4Y2-K-self-referencing-embed-type-hints-fixed-realtime-track-now-forwards-opts","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel__PRgIv7qjAyLbGPlSR26s","title":"Supabase Auth v2.193.0 links provider domains and downgrades session AAL on factor deletion","path":"/release/rel__PRgIv7qjAyLbGPlSR26s-provider-linking-domain-groups-session-aal-downgraded-after-factor-deletion","org":{"slug":"supabase","name":"Supabase"},"importance":2},{"id":"rel_EdOcHy_7qcemsysy5rMQp","title":"Running unmodified Doom in the SQLite bytecode language","path":"/release/rel_EdOcHy_7qcemsysy5rMQp-running-unmodified-doom-in-the-sqlite-bytecode-language","org":{"slug":"turso","name":"Turso"},"importance":null},{"id":"rel_toOzi8NOPS-pNPUR9L1ht","title":"We're building Postgres in Rust. Using the LLVM of databases","path":"/release/rel_toOzi8NOPS-pNPUR9L1ht-we-re-building-postgres-in-rust-using-the-llvm-of-databases","org":{"slug":"turso","name":"Turso"},"importance":null},{"id":"rel_8HJlFaqoMO9dpIPZ3lvnU","title":"Building a Retrieval Pipeline with Turso and Voyage AI","path":"/release/rel_8HJlFaqoMO9dpIPZ3lvnU-building-a-retrieval-pipeline-with-turso-and-voyage-ai","org":{"slug":"turso","name":"Turso"},"importance":null},{"id":"rel_gAf3V3PW9s-TlrRsvOiTC","title":"v1.0.30","path":"/release/rel_gAf3V3PW9s-TlrRsvOiTC-v1-0-30","org":{"slug":"turso","name":"Turso"},"importance":null}]}}