Changelog

New updates and product improvements

undefined RSS

As part of our ongoing commitment to providing a secure and reliable experience for all developers, we will drop support for Node.js 20 in accordance with our Support Policy.

Affected libraries#

All packages published from the supabase-js monorepo:

@supabase/supabase-js

@supabase/auth-js

@supabase/realtime-js

@supabase/functions-js

@supabase/storage-js

@supabase/postgrest-js

Timeline#

End of Support for Node.js 20: June 30, 2026

Why?#

Node.js 20 reached its official end of life on April 30, 2026 (as scheduled in the Node.js release plan) and no longer receives security updates or critical fixes. Continuing to support unsupported runtimes introduces risks for both developers and end users.

What You Need to Do

Please upgrade to a supported Node.js version (22 or later) before June 30, 2026 to ensure continued compatibility with future releases of our libraries.

Thank you for your attention and continued support. If you have any questions, feel free to reach out through GitHub Discussions or our community channels.

Here's everything that happened with Supabase in the last month:

Custom OAuth/OIDC providers for Supabase Auth#

Connect any OAuth2 or OpenID Connect identity provider to your Supabase project, including GitHub Enterprise, regional IdPs, and any standards-compliant provider, with PKCE enabled by default.

[Blog]

New tables in the public schema are no longer auto-exposed to the Data API#

Starting April 28, new Supabase projects can opt out of automatic Data API exposure for public schema tables. Explicit Postgres grants are now required to make a table reachable via PostgREST or GraphQL. This becomes the default for all new projects on May 30.

[GitHub Discussion]

Supabase is now ISO 27001 certified#

Supabase is certified to ISO/IEC 27001:2022, covering the information security management system across the entire platform.

[Blog]

Stripe Sync Engine moves to Stripe#

The Stripe Sync Engine, originally built by Supabase, is now part of the Stripe GitHub org. It is open source and maintained by Stripe going forward.

[Blog]

Supabase brand survey#

Help shape the direction of Supabase. The brand survey takes a few minutes and closes soon.

[Take the survey]

@supabase/server#

A new SDK that handles auth, client creation, CORS, and context injection across runtimes. Works on Edge Functions, Vercel Functions, Deno, Bun, and Cloudflare Workers.

[Blog] [Docs]

Quick Product Announcements#

  • The Supabase app in the Stripe Marketplace is now generally available. [Stripe Marketplace]
  • Branching without Git is now the default. Create branches directly from the dashboard without a GitHub integration. [Blog]
  • Data API settings revamped: new per-table and per-function toggles let you control which tables are exposed to PostgREST and GraphQL, with a default-privileges switch at project creation. [Docs]
  • The Supabase changelog now has RSS feeds, tag filtering, and a .md feed, plus links to copy any entry as Markdown or ask Claude/ChatGPT. [Changelog]
  • Wrappers v0.6.0 ships with a new OpenAPI FDW, Snowflake timeout support, Clerk CRUD, and several bug fixes. [GitHub] [Docs]
  • Supabase Agent Skills: an open-source set of instructions that teach AI coding agents how to build on Supabase correctly. [Blog]
  • Terraform Provider v1.9.0 adds Edge Functions resource, Edge Function secrets resource, and a network bans data source. [Docs]

Made with Supabase#

  • Replist: Track your repertoire, sharpen your practice, and connect with the musicians you play with. [Website]
  • Grepture: Trace, evaluate, and protect every LLM call. Drop-in SDK. 80+ detection rules. [Website]
  • Causo: Agents that connect you with best fit partners at VCs. [Website]
  • Screenfully: An app demo creator on your phone. No need to connect to a Mac. [Website]
  • Anamap: Cartos by Anamap is an AI agent that investigates your dashboards, site behavior, and code releases to find the root cause of metric drops in plain English. [Website]
  • Crewform: Build your AI team with Crewform. Orchestrate specialized, autonomous agents to collaborate on complex tasks and connect outputs to your stack. [GitHub]

Community Highlights#

  • The Supabase GitHub repo hit 100K stars and 8 million developers. [Blog]
  • Introducing the OSSCAR: An index of the fastest-growing open-source orgs. [Blog]
  • The State of Startups 2026 survey is still open. [Survey]
  • How I Scaled My NextJS + Supabase App to 25,000 Users [YouTube]
  • Stop Building Custom Auth — Auth0 vs Supabase: One Saved Us 3 Months of Engineering Work [Blog]

This discussion was created from the release Developer Update - May 2026.

What's changing#

The /v1/oauth/token endpoint currently returns HTTP 201 Created on success. On May 26, 2026, this will change to HTTP 200 OK.

Why#

OAuth 2.1 (section 3.2.3) mandates a 200 response from token endpoints. Returning 201 is non-compliant and has caused token exchange failures with some strict OAuth clients.

Am I affected?#

You're only affected if your integration explicitly checks for a 201 status code from this endpoint. For example, the following popular client implementations check for a successful 2XX range and are unaffected:

If you're unsure, search your codebase for explicit 201 checks against this endpoint.

What should I do?#

Rather than hardcoding a check for either 200 or 201, we recommend checking for a successful 2XX response range — e.g. response.ok in the Fetch API. This is consistent with how popular OAuth client libraries handle token responses and will be resilient to either status code.

Timeline#

DateEvent
May 1, 2026Announcement published
May 26, 2026Change takes effect
2026
2025
2024
2023
2022
2021

Build in a weekend, scale to millions