Shipping every Tuesday

What we shipped.

Releases, fixes, and the occasional retrospective on what we learned in production. Subscribe to get the next one in your inbox the moment it goes live.

Apr 28 · 2026
v2.4.0 Major release 12 contributors

Edge Functions, generally available.

After eight months in beta, Edge Functions are now GA across all 38 regions. Cold starts under 30ms, isolates instead of containers, and a new lambda.routes() API for per-region routing.

request sfo 18ms cdg 22ms iad 11ms nrt 26ms syd 29ms +33 more cold start 28ms isolates
New
  • Edge Functions GA. Now generally available with 99.99% SLA. lambda functions:deploy ships to 38 regions in a single command. #3142
  • Per-region routing. A new routes.ts primitive lets you pin endpoints to regions, fail over to fallback regions, or serve different bundles by geo. #3098
  • Streaming responses. Functions can now return ReadableStream for SSE, AI tokens, or large CSV exports without buffering. #3127
Improvements
  • Cold starts dropped from 84ms to 28ms (P95) thanks to a new V8 snapshot pipeline. #3061
  • Function logs now stream live in the dashboard with sub-second latency, even at 10k req/s. #3119
  • Bundle size limit raised from 50MB to 250MB for paid plans. Compressed deltas are now diffed across deploys. #3145
Fixes
  • Fixed a race in kv.atomic() that caused intermittent transaction aborts under high contention. #3103
  • Resolved the dashboard crash when viewing functions deployed from a deleted git branch. #3110
MC
JK
AR
TS
+8
Shipped by Maya, Jiro, Ana & 9 others.
Apr 21 · 2026
v2.3.4 Patch

Migration safety net & faster CLI startup.

A small but mighty release. lambda migrate now warns before destructive changes hit production, and the CLI is 2.4× faster to boot on first run.

Improvements
  • CLI startup dropped from 240ms to 98ms thanks to lazy-loaded subcommand modules. #3088
  • Migration plans now show estimated lock duration, row-count impact, and a backfill ETA before applying. #3079
  • Trace viewer now surfaces N+1 query patterns inline with a "fix this" suggestion. #3084
Fixes
  • Fixed a regression where lambda dev would hang if port 4321 was already in use. #3091
  • SAML logout redirects now respect the RelayState parameter on all configured IdPs. #3094
  • Webhooks no longer retry indefinitely on 410 Gone responses — they now permanently fail-open. #3096
RB
EM
SP
Shipped by Renata, Eli & Sam.
Apr 14 · 2026
v2.3.3 Patch

Better Postgres branching & a quieter dashboard.

Database branches now support copy-on-write at the storage layer, so spinning up a 200GB preview environment costs you exactly nothing — until you write to it.

New
  • Copy-on-write branches. Preview environments now share storage pages with their parent until divergence. Branches start in <3 seconds regardless of database size. #3052
  • Quiet hours. Dashboard alerts now respect a per-team quiet-hours schedule. Pages still fire; toasts hush. #3068
Improvements
  • Logs panel now supports filter chips (status, region, function, user) with keyboard navigation. #3070
  • API keys can now be scoped to a single resource type — finally. #3074
— March 2026 —
Mar 31 · 2026
v2.3.0 Major release 9 contributors

Row-level policies, written like English.

A new declarative policy DSL replaces the JSON-based access rules. Read your security model out loud — it’s the same as the source code.

New
  • Policy DSL. A new .policy file format lets you express row-level access in plain reading order. The compiler emits Postgres RLS under the hood. #2987
  • Policy preview. The dashboard shows you which existing rows a policy change would suddenly grant or revoke before you apply it. #3001
  • Audit logs API. Every policy decision is now queryable via /v1/audit with full request context attached. #3019
Improvements
  • JSON policies still work — the DSL is opt-in. Migration tool included. #3024
  • Test runner can now assert "this policy denies access for this row + user" with a one-liner. #3030
JK
MC
DV
+6
Shipped by Jiro & the Auth team.
Mar 17 · 2026
v2.2.7 Patch

Faster cold queries, calmer pagers.

A weekend’s worth of perf work. The query planner now caches plans across deploys, and we shaved 40% off the connection-pool acquire time.

Improvements
  • Query plans cached across deploys for unchanged statements — first-request P95 down 38%. #2945
  • Connection pool acquire latency: 12ms → 7ms (P95). #2952
  • Alerts now batch within a 60s window so you don't get paged 14 times for the same incident. #2961
Like what you see? · This template is yours for $49 USD Get the template →