Supabase April 2026 release notes, read as a Mac choreography
Five dated releases landed in twenty days. Studio got AI. Clients got automatic retries. The docs went SSH. Stripe Projects got a co-design partner. Every other write-up lists them in a column. Here they are the way you actually use them on a laptop: one in Studio, one in Claude Code, one in your app, and one in a shell.
Download Fazm for MacThe five entries, in order
Every row below is a real changelog entry with its date and the authoritative tag or PR. No paraphrasing, no re-skinning. If a sentence here is wrong the corresponding source is wrong.
Source of truth: supabase.com/changelog and github.com/supabase/supabase/releases/tag/v1.26.04.
April 9, 2026 - Developer Update, tagged v1.26.04
Five items land on one tag: Multigres Kubernetes operator open-sourced (zero-downtime rolling upgrades, pgBackRest PITR backups, OTel tracing), GitHub integration opened to all plans including free, Supabase confirmed as a co-design partner on Stripe Projects CLI, docs reachable over SSH with an explicit Claude Code pipe story, and a security-advisory newsletter launched for critical issues.
April 16, 2026 - pg-delta declarative schema management (public alpha)
A diffing engine that reads SQL schema files and generates migrations for you. Supports Postgres 15+, both interactive and non-interactive modes, and warns before destructive changes. The implementation landed across two CLI pull requests, supabase/cli#4966 and supabase/cli#5057.
April 17, 2026 - Invoice tax collection notice
Supabase will begin applying taxes to invoices between May 1 and June 30, 2026 based on billing address. Not a code change, but the only April entry that forces you to open your account settings and verify your billing address and tax ID before the window opens.
April 20, 2026 - Automatic PostgREST retries in every official client
supabase-js 2.102.0, supabase-swift 2.43.0, supabase-flutter 2.7.0, supabase-py 2.29.0. GET and HEAD retry up to three times with exponential backoff on transient network errors. Mutations (POST, PATCH, PUT, DELETE) are never retried automatically. Retries are on by default and can be disabled globally or per request.
April 24, 2026 - RLS Tester preview in Studio
Role impersonation for SELECT queries only, with a UI that shows which Row Level Security policies evaluated. Partial AI support for translating client-library code into an impersonated SELECT. The hard limit to reads on day one is deliberate: nothing destructive can slip out of an impersonated session. Tracked in supabase/supabase#45121.
The anchor fact, four client version pins
If you take one thing from this page into your codebase, take these four lines. They are the minimum versions that opt you into the new automatic PostgREST retry behavior. Anything older still works, but will not retry on transient network errors, and the retry shape is opinionated: GET and HEAD yes, mutations no.
The Swift, Flutter, and Python clients expose the same shape with language-idiomatic names. Supabase deliberately does not retry mutations because they refuse to assume every POST is idempotent, which is the correct call. If your writes have request IDs or upsert keys you can flip that off per call.
Verify the versions yourself
The client library versions tagged on April 20 are permanent in GitHub. If the changelog page ever rolls off, the release tags do not. Four curls, four confirmations.
Why April 2026 is a Mac desktop release, whether Supabase said so or not
Here is where the other write-ups stop. They list the features and move on. But every headline item this month expects you to be flipping between at least three local apps on a laptop. The Developer Update makes this explicit by endorsing a Claude Code pipe for the docs. The rest implies it.
One month, four windows, one Mac desktop
Every April release, and where on a Mac it actually lands
Left half is what Supabase shipped. Right half is the Mac app window it actually opens in. If you read the release notes linearly it looks like five unrelated things. Mapped to windows it looks like one coherent product push.
Docs over SSH, with a Claude Code pipe
cat or less in Terminal, pipe into Claude Code, ask a question across the whole reference. Supabase endorsed this flow in the v1.26.04 notes. The first BaaS whose docs are shaped for an AI agent first and a human browser second.
Fix with Assistant in Studio
A Fix button appears across Studio touchpoints with a dropdown to send the prompt to Claude or ChatGPT. Starts in the browser, often finishes in Claude Code.
pg-delta declarative schemas
Write SQL end-state, CLI generates the migration. Runs locally in Terminal, shipped in supabase/cli#4966 and #5057. No Studio required for this one.
Automatic PostgREST retries, everywhere at once
supabase-js 2.102.0, supabase-swift 2.43.0, supabase-flutter 2.7.0, supabase-py 2.29.0. Your running app sees it. You do not. That is the point.
RLS Tester, SELECT-only preview
A Studio-side tool for role impersonation, explicitly read-only on day one. The deliberately narrow scope is the interesting design decision, not the feature itself.
Stripe Projects, a CLI for new projects
Supabase as co-design partner. Terminal-driven provisioning, credentials auto-synced to .env. Not a Studio feature. A shell feature.
A Mac assistant that watches all four windows, not one
The reason this page is on fazm.ai and not on a Supabase blog is that Fazm is a Mac app built around the only approach that can treat Studio, Terminal, Claude Code, and your running app as one context. It reads the macOS accessibility tree (AXUIElement) of whatever app is under the cursor and hands that tree to a Claude agent. No screenshots. No OCR. No per-app plugin. That is why Fazm is useful when Supabase ships a month of cross-window work.
| Feature | Screenshot or browser-only agent | Fazm (accessibility tree) |
|---|---|---|
| Sees Studio, Terminal, and your app at once | Browser-only, or screenshot per app | Yes, accessibility API is system-wide |
| Reads the pg-delta migration plan in Terminal | Screenshots and OCRs the diff | Parses the terminal AXUIElement tree |
| Follows a Fix-with-Assistant handoff | New screenshot each window switch | Same session, cursor moves, context persists |
| Consumer-friendly or developer framework | Usually Python, API keys, launch script | Signed, notarized Mac app |
| Cost per turn as windows accumulate | Scales with total pixels re-captured | Scales with accessibility tree depth |
The cleanest summary is a count, not a paragraph
Five dated entries. Four client library bumps. Two CLI pull requests. One Kubernetes operator open-sourced. One CLI co-design partnership. One security newsletter. One tax notice. Zero Launch Week events this month, the next one is Launch Week 15 in July.
Percentage of the April releases that changed how developers use a Mac desktop during a build session: 0%. That is the thesis of this page and also, reasonably, the thesis of the April 2026 Supabase release cycle as a whole.
Want to see the Studio + Terminal + app choreography live?
Fifteen minutes, screen-shared, with a real Supabase project and Fazm reading the accessibility tree of all three windows at once.
Questions about the April 2026 Supabase releases
What did Supabase ship in April 2026?
Five dated entries on supabase.com/changelog. April 9 was the Developer Update tagged v1.26.04, which open-sourced the Multigres Kubernetes operator, extended the GitHub integration to every plan including free, confirmed Supabase as a co-design partner on Stripe Projects, made the docs reachable over SSH (explicitly for piping into Claude Code), and launched a security-advisory newsletter. April 16 shipped pg-delta declarative schema management as a public alpha (PRs supabase/cli#4966 and #5057). April 17 posted a tax-collection notice for invoices from May 1 to June 30. April 20 shipped automatic PostgREST retries in all official client libraries: supabase-js 2.102.0, supabase-swift 2.43.0, supabase-flutter 2.7.0, supabase-py 2.29.0. April 24 opened the RLS Tester preview in Studio with role impersonation for SELECT queries.
Which client library versions do I actually need to pin for the automatic retry behavior?
supabase-js v2.102.0, supabase-swift v2.43.0, supabase-flutter v2.7.0, and supabase-py v2.29.0. GET and HEAD requests retry up to three times with exponential backoff by default. Mutations (POST, PATCH, PUT, DELETE) are never retried automatically because Supabase does not assume idempotency. You can disable retries globally at client creation or per request if your wrapper already handles it.
What is the pg-delta alpha and how is it different from the old migration flow?
pg-delta is a diffing engine that reads declarative SQL schema files and generates migrations for you, rather than making you write timestamped migrations by hand. You describe the end state, the CLI generates the delta. Postgres 15 and up only, interactive and non-interactive modes, and it warns on destructive changes before applying. The two pull requests to look at are supabase/cli#4966 and supabase/cli#5057. Think of it as terraform-style planning for Postgres schemas.
The Developer Update says I can browse Supabase docs over SSH. What is that actually for?
Supabase put the docs behind an SSH endpoint so you can read them with plain Unix tools like cat, grep, and less, or pipe them into Claude Code. The April 9 release notes explicitly endorse the Claude Code pipe. This is the first time a major BaaS has shipped docs shaped specifically for an AI coding agent rather than a human browser. If you work in Terminal all day, it removes the browser tab step entirely.
Does the Stripe Projects CLI replace the existing Stripe Sync Engine integration?
No, they solve different problems. The Stripe Sync Engine was already in the Supabase dashboard as a one-click install that mirrors your Stripe customers, subscriptions, invoices, and payments into your Postgres so you can query them with plain SQL. Stripe Projects is the new CLI where Supabase is a co-design partner. It provisions services (Supabase, Vercel, Clerk) from your terminal and syncs their credentials straight into your project .env. Sync Engine is a runtime mirror of Stripe data. Stripe Projects is a bootstrapping tool for new projects.
What does the RLS Tester preview cover on day one?
Role impersonation for SELECT queries only. You pick a user, run a read, and the UI shows you which Row Level Security policies evaluated and why. The deliberate limit to reads avoids the obvious footgun of running a DELETE under the wrong role and wiping a table. There is partial support for translating client-library code into the role-impersonated form through an AI step, but the reliable path on day one is writing SELECTs directly. The PR to read is supabase/supabase#45121.
What changed about the GitHub integration in April 2026?
It is now available on every plan, including free. Previously it required a paid tier. Connect your repo, push to main, and Supabase runs migrations from your main branch via CI/CD. You do not need Supabase's branching feature to get this flow. If you were already on a paid plan nothing changes for you. If you were on free and were writing shell scripts to run migrations, you can delete those scripts.
Why is this page framed around a Mac workflow?
Because every headline feature in April's release notes lands in a different Mac app. Studio is a browser tab. Claude Code is a Terminal window. The RLS Tester reads policies while your app is running in a third window. Stripe Projects provisions in the shell then writes to your .env in an editor. The docs-over-SSH pipe wants cat or less feeding into Claude Code. Whoever wrote these release notes was writing for someone flipping between at least three windows on a laptop. Fazm is a consumer Mac app that reads the macOS accessibility tree of whatever app is under the cursor, which is the context that makes this choreography readable as one workflow rather than five.
How does Fazm relate to Supabase directly?
Fazm is not a Supabase client or plugin. It is a floating Mac assistant that reads the accessibility tree of any app on your screen and hands that structured context to a Claude agent. It works with Supabase Studio in the same way it works with any other tool, which matters in April 2026 specifically because the new Supabase surface is split across Studio, Claude Code, and your app. Fazm never takes a screenshot. Everything it sees is the real AXUIElement tree.
Where is the authoritative source for the April 2026 Supabase release notes?
The three sources that carry the releases in full are supabase.com/changelog, github.com/supabase/supabase/releases/tag/v1.26.04 (the Developer Update), and the supabase-community discussion archive. For the client library bumps, the releases tab on each client repo is authoritative: supabase-js, supabase-swift, supabase-flutter, and supabase-py all have their own GitHub release entries dated April 20. Version tags live there forever even if the changelog page rolls off.
More on the April 2026 desktop-AI cadence
Keep reading
Anthropic Claude release notes April 2026, from the downstream side
What Opus 4.7, ACP v0.29.2, and the partial models payload looked like inside a consumer Mac app shipping alongside them.
Anthropic Claude Code update April 2026
The same Claude Code pipe Supabase is endorsing, with the April updates that changed how it ingests piped docs.
Claude AI for macOS
How Claude actually runs on a Mac, accessibility APIs, and why screenshot automation is a dead end for desktop agents.