The Wire · Showcase
SUPABASE CLI GOES ALL-IN ON TYPESCRIPT - GO BINARY PORTS ACCELERATE
By RepoJournal · Filed · About Supabase
Supabase shipped native TypeScript replacements for branches, orgs, and SSO commands overnight, killing the Go subprocess fork-exec tax and completing five major CLI modernization batches in parallel.
The CLI team shipped three massive ports simultaneously: all eight branches subcommands [1], six SSO handlers [3], and the orgs list/create pair [2] are now native Effect implementations with byte-for-byte Go parity on output formatting, exit codes, and telemetry. This isn't incremental - it's the fifth wave of CLI-1289, the systematic Go-to-TypeScript migration that eliminates subprocess overhead and builds shared infrastructure (HTTP error mappers, JSON/YAML/TOML encoders, Glamour tables) once instead of twice. Hidden subcommands now use native Command.withHidden [4], cleaning up the local annotation path entirely. On the JS side, supabase-js 2.106.3-canary.2 hardens PostgREST error handling [5]: the SDK now catches non-JSON bodies on 2xx responses (proxies, CDNs, truncated streams return success status with junk data), wraps them in structured errors instead of crashing mid-parse [6], and recognizes ?error= OAuth redirects in the implicit grant gate [7]. The main studio repo continues polish: DataGrid borders are fixed consistently across all surfaces [8], alert titles now render correctly in confirmation dialogs [9], organization shortcuts landed for keyboard navigation inside Settings [10], and SQL observability logging got SafeLogSqlFragment hardening [11]. One more thing: ephemeral CI environments stop firing identity spam [12] now that the stitch gate checks !isCI.
Action items
- → Update supabase-js to 2.106.3-canary.2 if you depend on PostgREST - non-JSON response handling is now defensive supabase/supabase-js [plan]
- → Upgrade CLI to latest if you use branches, orgs, or SSO commands - TypeScript ports are production-ready supabase/cli [plan]
- → Monitor canary releases - the SDK auth JWT fix [ref:9] is still hardening before stable release supabase/supabase-js [monitor]
References
- [1] feat(cli): port branches commands to native TypeScript (#5374) supabase/cli
- [2] feat(cli): port orgs commands to native TypeScript (#5379) supabase/cli
- [3] feat(cli): port sso commands to native TypeScript (#5375) supabase/cli
- [4] chore(cli): replace legacy hidden subcommands (#5378) supabase/cli
- [5] v2.106.3-canary.2 ↗ supabase/supabase-js
- [6] fix(postgrest): return a structured error for non-JSON body on successful responses (#2398) supabase/supabase-js
- [7] fix(auth): recognize ?error= redirects in implicit grant gate (#2407) supabase/supabase-js
- [8] fix(studio): remove default DataGrid borders across studio surfaces (#46448) supabase/supabase
- [9] fix: show titles (#46447) supabase/supabase
- [10] feat(studio): add organization shortcuts (#46356) supabase/supabase
- [11] feat(logs): brand Observability/EdgeFunctions SQL with SafeLogSqlFragment (#8) (#46466) supabase/supabase
- [12] fix(cli): skip identity stitch in CI to stop ephemeral-env identify spam (#5366) supabase/cli
- [13] fix(auth): return AuthInvalidJwtError from getClaims for expired JWT (#2395) supabase/supabase-js
FAQ
- What changed in Supabase on May 29, 2026?
- Supabase shipped native TypeScript replacements for branches, orgs, and SSO commands overnight, killing the Go subprocess fork-exec tax and completing five major CLI modernization batches in parallel.
- What should Supabase teams do about it?
- Update supabase-js to 2.106.3-canary.2 if you depend on PostgREST - non-JSON response handling is now defensive • Upgrade CLI to latest if you use branches, orgs, or SSO commands - TypeScript ports are production-ready • Monitor canary releases - the SDK auth JWT fix [ref:9] is still hardening before stable release
- Which Supabase repositories shipped on May 29, 2026?
- supabase/cli, supabase/supabase-js, supabase/supabase