Changelog

New updates and product improvements

Edge Functions are executed in the region closest to the user making the request. This helps to reduce network latency and provide faster responses to the user.

However, if your Function performs many database or storage operations, invoking the Function in the same region as your database may provide better performance. Some situations where this might be helpful include:

  • Bulk adding and editing records in your database
  • Uploading files

Previously, the region could only be set via the x-region header in the request. However, in some instances (e.g., CORS requests, Webhooks), the headers set in the request cannot be controlled. Considering these limitations, we've also made it possible to set the region via the forceFunctionRegion query parameter.


_10
# https://supabase.com/docs/guides/functions/deploy#invoking-remote-functions
_10
curl --request POST 'https://<project_ref>.supabase.co/functions/v1/hello-world?forceFunctionRegion=eu-west-3' \
_10
--header 'Authorization: Bearer ANON_KEY' \
_10
--header 'Content-Type: application/json' \
_10
--data '{ "name":"Functions" }'

Please check the Regional Invocations guide for more details.

A couple of months ago, we started migrating our Edge Functions platform to use Deno 2.1. Deno 2 bridges the gap between Node and Deno by supporting Node's built-in APIs, npm modules, and package.json. This would make it easy to migrate existing Node apps to run in the Edge Functions platform.

Previously, we announced that you can start testing Deno 2.1 locally for your Edge Functions. Thanks to everyone who tried and gave us feedback.

Today, we give you the option to preview Deno 2.1 on our hosted platform. You should try running your existing Edge Functions with Deno 2.1 and report any bugs/issues.

You can first run deno lint locally on your Edge Functions code with no-deprecated-deno-api rule to find any breaking changes in Deno 2.

Once you have updated your functions, you can test them in our hosted platform as follows:

How to test for Deno 2 compatibility

There are two ways to force your functions to run on the Deno 2 preview cluster.

  • Add query parameter forceDenoVersion=2 to your function requests

_10
https://project-ref.supabase.co/functions/v1/hello-world?forceDenoVersion=2

  • Add x-deno-version: 2 header in requests

_10
curl --request POST \
_10
--url https://project-ref.supabase.co/functions/v1/hello-world \
_10
--header 'content-type: application/json' \
_10
--header 'x-deno-version: 2' \
_10
--data '{
_10
"name": "test"
_10
}

Note: Deno 2 Preview cluster traffic will be served from us-east-2 region. You don't need to set the region explicitly.

Also, in the next couple of days, we will notify projects currently using deprecated APIs via email to update their functions to use Deno 2.

When are we fully rolling out Deno 2.1?

Based on the feedback and issues we discover in this preview, we will decide the timeline on making Deno 2.1 the default runtime in our hosted platform. Current ETA is within 3-6 weeks.

The upcoming release of Supabase Platform will use Postgres 17. The Postgres 17 bundle will no longer include the following Postgres extensions:

  • timescaledb
  • plv8
  • plls
  • plcoffee
  • pgjwt

Existing projects will NOT be immediately impacted - the extensions will continue to be supported on Supabase Postgres 15, until the Supabase Platform “end of life” of Postgres 15 in approximately 1 year (May 2026). However, the extensions will not receive further updates and fixes. Existing projects will need to drop the extensions before they can upgrade to Postgres 17.

This decision to deprecate these extensions was not made lightly, however these extensions are more complex than “standard” Postgres extensions and require additional support/testing that did not match the usage we see on the platform.

To address the capability gaps left by deprecating plv8 and timescaledb, we plan to include the pg_partman extension in a future Postgres 17 release and will provide documentation to help migrate Timescale hypertables to native Postgres partitioning at that time. For plv8 we recommend porting the logic to Edge Functions, which offer greater scalability and flexibility. These changes are part of our ongoing efforts to streamline our platform, reduce operational complexity, and ensure long-term support for features that align closely with our user base.

If you have additional use-cases for these deprecated extensions, please reach out to us and our Success team will work with you to find a solution.

[!NOTE] This change has now been fully rolled out - thank you everyone for the feedback! 🙏

Tabs for Table and SQL Editor

For those who've been with us since the very beginning, you might remember that we used to have tabs in the Table Editor which we eventually removed 😉 We're bringing this nifty UX back with a better UX too, and also introducing this into the SQL Editor as well! Conveniently go between tables across schemas, or flip between snippets without having to navigate through your list of queries (especially if you've got tons of them!)

These are currently behind their own feature previews at the moment, which you can access by clicking on your Profile picture in the top navigation bar, but we're going to be looking into an incremental rollout for everyone! Feel free to let us know what you think! 🙏

What we'd like to know from you

  • Any bugs or issues that you might have run into while using the new UI
  • Any ideas or suggestions that you reckon will improve the DX based on how you use these 2 editors
  • Feel free to leave any feedback in this thread too!

Rollout plan

  • Changes are behind a feature preview in the dashboard
  • Starting from 12th May 2025, we will roll out to the hosted platform first as incremental % rollout where users will be opted into the feature preview by default
  • If you might want opt out of the changes, you may disable the changes via the feature previews which you can access through the user dropdown in the header here:

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

Project scoped roles

Project scoped roles are now available for all Supabase Team plans. Each member in the organization can be assigned a role scoped to the organization or to specific projects.

[GitHub]

MCP Server now works with VS Code

Set up the Supabase MCP server to work with Visual Studio Code.

[Twitter]

MCP Server can now create and deploy Edge Functions

Use the Supabase MCP server to build Edge Functions.

[Twitter]

Supabase UI Library now includes Infinite Query block

React hook for infinite lists that fetches data from Supabase. Use it for infinite scroll.

[Link] [Twitter]

Supabase UI Library now includes Social Auth

A block to quickly create authentication UI for all supported social logins.

[Link] [Twitter]

Quick Product Announcements

  • The new Supabase SOC 2 report is available. [Link]
  • We published comprehensive documentation about our security processes and controls. [Docs]

Made with Supabase

  • Web application for creating and editing AI-generated avatars using OpenAI's DALL-E API. Built with React, TypeScript, and Supabase. [GitHub]
  • Data transformation systems engineered for your needs [GitHub] [Website]
  • Command line for finding lines that have specific keywords in Rust . [GitHub]

Community Highlights

  • Create a Reusable Team component for your application using Next.js, Supabase, and Shadcn [Article]
  • Grocery Tracker App using Vue JS and Supabase [Article]
  • Use Supabase MCP in VSCode and Cursor [Article]
  • Supabase WordPress Integration - SupaWP Plugin [Article]
  • Implementing multi-tenancy into a Supabase app with Clerk [Article]
  • Build This Self-Expanding YouTube-Powered AI Agent Knowledge Base (n8n + Supabase) [YouTube]
  • Custom SMTP for Supabase Email Authentication | Complete Setup + Testing [YouTube]
  • AI Chatbot That Remembers You! (n8n + Supabase + WhatsApp) [YouTube]
  • Building a MCP-Powered Task Manager Agent with Agno and Supabase: A Step-by-Step Guide [Article]
  • How to Build an App From SCRATCH with Lovable + Supabase [YouTube]

This discussion was created from the release Developer Update - April 2025.

Sort columns in the Table Editor through the column header

Screenshot 2025-05-05 at 14 35 13

We've integrated the sorting functionality into the column menu - and these will dynamically update based on the current sort state of the column!

PR: https://github.com/supabase/supabase/pull/35139

Link: https://supabase.com/dashboard/project/_/editor

Ability to add billing address when creating or upgrading an organization

Screenshot 2025-04-21 at 21 28 39

You can now set your billing address when creating or upgrading your organization, and also set a billing name that diverges from your organization name! In hopes of alleviating a common request where invoices needed to be amended as there wasn't a billing address set 🙂🙏

PR: https://github.com/supabase/supabase/pull/34922

Link: https://supabase.com/dashboard/new

Other bugs fixes and improvements

General

  • Add reset database password callout to Connect modal (PR)

Table Editor

  • (Feature Preview) Fix searching in table editor unintentional clears all tabs (PR)
  • (Feature Preview) Fix tabs order not persisting when a tab is closed (PR)
  • (Feature Preview) Sync tab labels whenever reopening table editor (SQL Editor too) (PR)
  • Fix table editor rendering multiple columns if the column has multiple identical constraints on it (PR)
  • Fix inability to export data when all rows are selected (PR)

SQL Editor

  • (Feature Preview) Fix snippets being renamed by AI not updating it's tab label (PR)

Storage Explorer

  • Fix footer in list view unintentionally hiding last item (PR)

Edge Functions

  • Fix logs refresh button not pulling latest data when "Last n" option is selected (PR)

Logs

  • Fix datepicker overriding copy events (PR)

Integrations

  • Add link to foreign table in table editor from wrappers (PR)

Custom Reports

  • Fix missing labels on SQL blocks (PR)

Project scoped roles are now available for all Supabase Team plans.

With project scoped roles, you can:

  • Restrict team member access to specific projects
  • Set different permission levels for different projects
  • Maintain better security boundaries within your organization
  • Simplify compliance requirements, including HIPAA

Each member in the organization can be assigned a role scoped to the organization or to specific projects. If the member has a role at the organization level, they will have the equivalent permissions for that role across all current and future projects in the organization.

With project scoped permissions, you can assign members to roles scoped to specific projects within your organization.

To get started with project scoped roles visit your organization's team settings page to add users and manage their roles. If you're adding project scoped roles for a new user, you can only select one project when sending the invite. You can assign roles to multiple projects after the user accepts the invite.

(Upcoming) Dashboard layout update for organizations

We've updated the layout of the dashboard in hopes to improve the UX for managing team members and billing for organizations, as well as to clearly show the relationship between organizations and their projects. The home page of the dashboard is now scoped to a selected organization instead of showing all projects across all organizations, and accessing organization settings are now in individual links in the side navigation bar.

This isn't publicly available just yet, but we're looking to incrementally roll this out to everyone in batches over the next few weeks, starting as a feature preview initially where you can opt in to experience the updated layout. We'd also love to hear any thoughts or feedback that you might have - do feel free to reach out to us! We're just a message away from the Feedback button at the top right corner of the dashboard 🙏🙂

PR: https://github.com/supabase/supabase/pull/33150

Link: https://supabase.com/dashboard

Revamped billing breakdown in organization settings

Screenshot 2025-04-09 at 19 35 37

As with our commitment to making billing as transparent as possible, we've made a number of improvements to the billing breakdown section under your organization settings, such as adding individual documentation links to each usage items charged, adding separate items for read replicas / branching, and more! Read more details about the changes if you might be interested in the attached PR below 🙂

PR: https://github.com/supabase/supabase/pull/34861

Link: https://supabase.com/dashboard/org/_/billing

Add Database upgrade logs

image image

We've added the ability to browse logs relating to database upgrade operations as a way to troubleshoot failed upgrades. Unsuccessful database upgrades are reflected with an alert on the project's home page which now also includes a link to the database upgrade logs along with the exact time interval when the upgrade took place. 🛠️ 🚧

PR: https://github.com/supabase/supabase/pull/27924

Link: https://supabase.com/dashboard/project/_/logs/pg-upgrade-logs

Feature previews are now available on local / self-hosted Studio

Feature previews have always been available only for the hosted version of the dashboard, but we've decided to make it available for local / self-hosted version of the dashboard too!(Studio) Only feature previews that are relevant to the project will be present, so you'll be able to start using the Tabs interfaces for the Table Editor and SQL Editor soon once we've cut a new release 😉

PR: https://github.com/supabase/supabase/pull/35060

Other bug fixes and improvements

Table Editor

  • Clean up filters and sorts if applied on a column that has been deleted (PR)
  • Optimize row retrieval with CTE to improve load times by almost 30x on larger tables (PR)

SQL Editor

  • (Feature Preview) Persist scroll position when switching between snippet tabs (PR)
  • Fix missing styles when multiple snippets are selected via shift click (PR)

Reports

  • Support dragging a SQL chart from the Assistant into an empty custom report (PR)

Logs

  • Consolidate date picker in logs to a single UI (PR)
  • Add "Last 3 hours" option (PR)
  • Add "Copy as JSON" button when view log details (PR)
  • Add hint and query details to Postgres Logs (PR)
  • Fix cmd+z undo behaviour in logs explorer (PR)

Integrations

  • Add meters table for Stripe FDW (PR)
  • Add Slack FDW (PR)
  • Add Cloudflare D1 FDW (PR)
  • Add Hubspot FDW (PR)
  • Add Orb FDW (PR)

Here’s a recap of everything we announced during Launch Week and the month of March:

Supabase MCP Server

We are launching an official Supabase MCP server. You can use this server to connect your favorite AI tools (such as Cursor or Claude) directly with Supabase.

[Link] [GitHub]

Supabase UI Library

lw14-ui-email

A set of convenient components built on shadcn that can be dropped into any Next.js, React Router, Tanstack Start, or vanilla React application. This initial release includes the following components:

[Link]

Supabase Studio Improvements

lw14-dashboard-updates-email

We shipped a number of Supabase Studio improvements and new features. Here’s a quick rundown of what’s new:

  • Tabs!: The Table Editor and SQL Editor now have tabs!
  • Customizable Reports: create reports to show data exactly how you want to see it
  • SQL Blocks in Custom reports: use SQL Snippets in blocks inside your custom reports
  • Inline SQL Editor: use a mini SQL Editor anywhere in the Dashboard
  • Multiple AI Assistant chats: maintain history of your Assistant chats
  • Logs improvements: more detailed inspect panel, and stacked charts

[Link] [GitHub]

Edge Functions Deploy from the Supabase Dashboard

lw14-dashboard-updates-email

You can now create, test, edit, and deploy Supabase Edge Functions directly from the Supabase Dashboard.

[Link]

Realtime Broadcast from Database

Send messages based on changes in the Database, directly from the Database itself. Scale to support sending Database change messages to tens of thousands of users.

[Link]

Declarative Schemas

Use declarative schemas to define your database structure in a clear, centralized, and version-controlled manner.

[Link]

Postgres Language Server

Postgres Language Server provides a collection of language tools and a Language Server Protocol (LSP) implementation for Postgres, focusing on developer experience and reliable SQL tooling. Today, we support autocompletion, syntax error highlighting, type-checking, and a linter.

[Link]

Quick Product Announcements

  • We expanded our official Third-party Auth integrations to include Clerk. We also made Third-party Auth cheaper so that it has pricing parity with Supabase Auth. [Link]
  • We have added Deno 2.1 support for Supabase Edge Runtime. With Deno 2.1, you can use built-in tools to scaffold a new project, manage dependencies, run tests, and lints. [Link]
  • You can now automate generation and updates of embeddings in your database. [Link] [Docs]
  • Geo-aware routing for Supabase API Load Balancer optimizes requests performance for your globally distributed users. [Link]
  • Dedicated Poolers are now available in Supabase for everyone on the Pro Plan and above. [Blog] [Link]
  • The Supabase docs now support type hints. [Link]

Launch Week Hackathon Winners

  • AI RPG - An Interactive storytelling platform that enables players to create and play through AI-generated narrative adventures. [Tweet]
  • AI Travel Concierge - An app that helps you travel by suggesting destinations and attractions and planning them. [Tweet]
  • CiteAnalytics - A web analytics tool that tracks when LLM visits your website. [Tweet]
  • play.theplaylist - Create YouTube playlists with an interactive UI and easily share it with friends. [Tweet]
  • sendit - A social media content creation tool to refine posts using AI. [Tweet]
  • StoryTime - Generate educational stories for kids using AI. [Tweet]
  • Supabadge - Generate your own beautiful Supabase event badge! [Tweet]
  • SupaQuery - Supabase SQL editor with Vim support. [Tweet]
  • QuickAudit - An app that logs every DB change (INSERT/UPDATE/DELETE) for auditing. [Tweet]
  • Today’s Diary - A diary app with a minimalistic UI that lets you exchange diary entries with another random user every day. [Tweet]

Made with Supabase

  • MagiCan - Finalist of our Lovable x Supabase hackathon. An infinite canvas platform that revolutionizes collaborative storytelling and project planning with advanced AI capabilities. [Website]
  • Next.js + Stripe + Supabase A Production-Ready Template - Start building with authentication and payments in minutes. [GitHub] [Website]
  • Hono Supabase Auth Example - This example shows how to use Supabase Auth both on the client and server side with Hono. [GitHub]
  • Discover exactly when you can achieve financial independence with FireCalculator a precision calculator and visualization tools. [Website]

Community Highlights

  • Implementing multi-tenancy into a Supabase app with Clerk [Link]
  • Supabase Just Dropped Their Own Fullstack UI Library! [YouTube]
  • Generating and Storing Google Gemini Embeddings with Vercel AI SDK and Supabase [Link]
  • Secure Your Next.js App: Email & Google Authentication with Supabase, PostgreSQL RLS, and Triggers [Link]
  • Supabase just dropped an official MCP Server [YouTube]

This discussion was created from the release Developer Update - March 2025.

What better way to wrap up Launch Week 14 than a summary of what was shipped to the dashboard (as well as several other goodies that we also shipped behind the scenes 😉)

Manage your Edge Functions directly from the dashboard

image

You can now create and update your Edge Functions directly from the dashboard! We've introduced a new "Code" tab to the Edge Functions details page, which makes it possible to view and edit your Edge Function source code, then deploy the changes.

PRs:

Link: https://supabase.com/dashboard/project/_/functions

Test your Edge Functions from the dashboard too!

image

To put the cherry on top, we've also introduced an Edge Function tester (which is basically a simplified version of Postman) that can be used to send requests to an Edge Function for testing. Access this UI by hitting the "Test" button while in an Edge Function 🙂

PR: https://github.com/supabase/supabase/pull/33728

Link: https://supabase.com/dashboard/project/_/functions

Tabs for the Table Editor and SQL Editor

For those who've been with us since the very beginning, you might remember that we used to have tabs in the Table Editor which we eventually removed 😉 We're bringing this nifty UX back with a better UX too, and also introducing this into the SQL Editor as well! Conveniently go between tables across schemas, or flip between snippets without having to navigate through your list of queries (especially if you've got tons of them!)

These are currently behind their own feature previews at the moment, which you can access by clicking on your Profile picture in the top navigation bar. Feel free to let us know what you think!

PR: https://github.com/supabase/supabase/pull/31071

Link: https://supabase.com/dashboard/project/_/editor

Support for multiple Assistant chats

image

We've added the ability to create and store multiple chats per project! Switch contexts without losing your conversation with the Assisant, and come back easily from where you left off thereafter too! Chats are also now scoped per project, so switching project also switches the chat.

PR: https://github.com/supabase/supabase/pull/34011

Link: https://supabase.com/dashboard/project/_

Account Information has now been replaced with Account Identities and it'll display what identities are linked to your account (either Email and/or GitHub, or SSO). We've also added support for changing your account's email address if you've got an Email identity with us.

PR: https://github.com/supabase/supabase/pull/33966

Link: https://supabase.com/dashboard/account/me

Support saving preference for navigation side bar expand behaviour

We've received multiple feedback from users regarding the expansion behaviour of the side navigation bar while in a project, and realised there was an almost even split between individual preferences on how the side bar should behave (keep expanded, keep closed, or expand on hover). As such, we've decided to make this behaviour controllable to your own preference, available now in the account preferences page 😄

PR: https://github.com/supabase/supabase/pull/33612

Link: https://supabase.com/dashboard/project/_

Other bug fixes and improvements

Account

  • Fix selection of single date for audit logs not returning any results (PR)

AI Assistant

  • Cache results in browser for the queries that are generated and ran (PR)

Table Editor

  • Fix exporting tables with large amount of rows (PR)
  • Fix updating a foreign key type while trying to add a foreign key at the same time (PR)

Logs

  • Update Field Reference for logs to show parameters for Shared and Dedicated Pooler (PR)

Reports

  • Add Dedicated Pooler connections to Database report (PR)

Storage Explorer

  • Fix switching buckets while uploading files to not upload to the bucket that was switched to (PR)

Database

  • Use TimestampInfo to show relative date and times for database backups (PR)

Project Integrations

  • Add Notion FDW (PR)
  • Add Clerk FDW (PR)

Build in a weekend, scale to millions