Changelog

New updates and product improvements

GraphiQL editor in the dashboard

The most popular GraphQL IDE/API explorer is now built into the dashboard! You can now explore and query your GraphQL API produced by pg_graphql.

Try it now.

We've updated our Docs search functionality to use pgvector + OpenAI. Still no cease and desist from Microsoft, so you can continue to ask Clippy any Supabase-specific questions šŸ“ŽšŸ’š

Ask Clippy.

Serve all the functions!

Do you use multiple Edge Functions in your project? Then celebrate! Supabase CLI 1.36+ now supports serving multiple Edge Functions at the same time.

To enable the feature, just run supabase functions serve in your project.

Check the docs.

Smaller Postgres docker images for everyone

We rewrote the Postgres Dockerfile with multi-stage builds so that each extension is compiled in its own separate stage. This reduces the size of the image from 1.3GB to 250MB, enabling a much faster boot time.

See it yourself

New UI for Postgres Roles

We've improved database role management. You can create, update, and delete database roles through the dashboard. Just one small step towards column-level security

Check it out.

API docs in the table editor

API docs got a light touchup and were moved to the table editor. You can now look up API methods and generate & download type files right there ✨

Check it out.

Quick product updates

  • Postgres Extensions: We're rolling out some fixes for several Postgres extensions. Check your Dashboard notifications to see if you need to take any actions.

  • Auth: Added full OpenAPI 3.0 spec which provides a comprehensive overview of the API with documentation on each request. PR

  • Database: supabase-js now infers the response type from your query. If the inferred type is incorrect, you can use .returns<MyType>() to override it. Doc

  • Dashboard: Improved database roles management, you can now create, update and delete database roles through the dashboard. Dashboard

  • Dashboard: We've provided a reference panel showing all available paths that can be queried from each respective source that improves the Logs Explorer experience. Dashboard

-Ā Edge Functions: upgraded to Deno 1.30.3, that supports TypeScript 4.9.x and introduces satisfies. Thanks to Benjamin Dobell šŸ™. PR

  • Realtime: Broadcast only primary key(s) for deleting records when RLS is enabled and replica identity is full. PR

The first month of the year was very productive here at Supabase. Here is a highlight of what we shipped during January:

Storing OpenAI embeddings in Postgres with pgvector

pgvector is a popular PostgreSQL extension for storing embeddings and performing vector similarity search. It was one of the most requested extensions by the AI/ML community and is now available thanks toĀ gregnr.

Read the announcement

Meet Supabase Clippy: ChatGPT for Docs

Greg wasted no time and tookĀ pgvectorĀ for a spin, he combined it with OpenAI to build Supabase Clippy, a next-generation doc search. The first implementation is a 1-week MVP and fully open source, so you can build on top of it.

Client library reference: Python and C#

We have released extensive reference docs for C# and Python, detailing every object and method. What are you going to build?

pg_graphql now supports Views, Materialized Views, and Foreign Tables

Views, Materialized Views, and Foreign Tables are three database objects that provide a powerful way to access and organize and transform data without duplication.

Read the docs

Automatic WebP detection for Image Transformation

WebP is a modern image format that provides superior lossless and lossy compression for images on the web. We are enabling format conversion by default for anyone who has Image Transformations. You can opt out by including format: origin in the transformation parameters.

Read the docs

Quick product updates

-Ā Ā Postgres Extension: Another powerful and time-tested extension, pg_repack, is added to Supabase.Ā [PR] -Ā Auth: Multi-tab session supportĀ using the new browser BroadcastChannel API. If a user logs out on one tab, they will now be logged out on all tabs.Ā [PR] -Ā Postgres: Superior speed with lz4 database compression.Ā [PR] -Ā Postgres: Use ICU locales and collations for text attribute ordering in database queries.Ā [PR] -Ā Docs: New guide on scheduling functions with pg_cron. [Guide] -Ā Edge Functions: You can now download source codes of deployed edge functions from the CLI. [Doc]

Launch Week 6 is just around the corner! We’re saving most of November’s updated as a surprise for Launch Week, but we still had time to ship some goodies this month.

Launch Week 6 tickets

Next week, we go all out for LW6. It’s 5 days of shipping, including major features requested by the community. You don’t want to miss a thing, so make sure to claim your free ticket (and you might win some very special SupaSwag).

Get your ticket

Remix Auth Helpers

It’s here! The much-awaited Remix Auth Helpers make server-side auth even easier and with a better experience. Up to date with supabase-js V2 and can be used with Typescript.

Read the docs

Edgy Edge Functions

We launched a new YouTube series, Edgy Edge Functions, where we take a deep look at a new function every week.

Plus, we published three new functions examples: Generate OG Images, Build API servers using Oak, and Generate Screenshots using Puppeteer.

Quick product updates

  • NextAuth Supabase Adapter. Docs. This allows you to run NextAuth as your authentication server while storing user and session data in a dedicated next_auth schema in your Supabase Database. Complete with support for RLS. Do note that NextAuth is a standalone Authentication server that does not interface with Supabase Auth and therefore provides a different feature set.

  • Fixed two issues with theĀ supabase.auth.signOutĀ function:Ā cookies not clearing properlyĀ andĀ session not removed.

  • You can now customize magic links by providing access to theĀ {{ .TokenHash }}.Ā PR

  • Now you can do redirects from your functions.Ā PR

  • Conda supportĀ (conda install -c conda-forge supabaseĀ and everything else in py)

supabase-js v2 and supabase-flutter v1 released

The new versions of our two most popular SDKs have been fully released. It couldn’t have happened without our amazing community, thanks to everyone involved. Now, it’s time to build šŸ› 

Try supabase-js V2

Try flutter-supabase V1

New Next.js quickstart & Next.js 13 example

Next.js is all the rage right now šŸ”„Ā 

Next.js Conf raised the bar for dev conferences. We had the honor of being a Gold Sponsor, so we revamped ourĀ Next.js Quickstart guideĀ to include our pre-built Auth UI andĀ Auth Helpers.

And Next.js 13 was announced! Making it extremely easy to fetch and cache data from ourĀ Serverless API. So we put together anĀ example to try it out.

Supabase Auth and Server-Side Rendering

The Auth team published an in-depth doc explaining how Supabase Auth supports server-side rendering. Includes an explanation of the authentication flow and answers to some of the more common questions.

Read the docs.

Database Testing with pgTAP

Do you have 100% code coverage? Probably not, because that’s usually the last thing you think of, but definitely not if you don’t have database tests. We just shipped a framework for Database Tests which makes it incredibly easy to test your database using pgTAP an pg_prove.

Read the docs.

Edge Functions Update

Functions now support GET requests! Other HTTP verbs such as PUT, PATCH, and DELETE are supported too.

Check this example

Quick Product Updates

  • supabase-py šŸ now has functions support! PR
  • You can now detect users’ location from Edge Functions easily by using X-Forwarded-For header. Example
  • Return provider_refresh_token along with provider_access_token. PR
  • Added a refreshSession method to allow users to forcefully refresh a session instead of waiting for it to autorefresh upon expiry. Thanks to @j4w8n for the PR šŸ™‡šŸ»ā€ā™‚ļø
  • Logging: realtime, storage, postgrest, and pgbouncer released.
  • Trigger a file download by adding the download query parameter to your storage objects. storage-api. PR

Kaizen Week

We did something a bit strange during September - weĀ didn'tĀ work on features. Quite the opposite. After Launch Week we did three subsequent weeks ofĀ Kaizen, a term we use internally to deliver constant and incremental improvement. Each week had a different focus:

  • Week 1: QA and testing
  • Week 2: Documentation
  • Week 3: Issue Backlog and Automation

It's pretty rare for a company to stop feature development altogether, but luckily we're just a bunch of developers so we all know the pain of technical debt. After 5 Launch Weeks, working on testing and backlogs feels like a bit of a relief.

We saw a lot of progress across our Open Issues - closing over 250 issues and 50 Pull Requests.

Auth UI on Product Hunt

We launched the new Auth UI on Product Hunt! Auth UI is a pre-built React component for authenticating users with Supabase Auth. It supports custom themes and extensible styles to match your brand and aesthetic.

Check out the launch.

Postgres WASM

If you've ever wondered, "can I run Postgres inside a browser, using an embeddable Linux Virtual Machine?", wonder no longer. With our friends atĀ Snaplet, we've released an open source Postgres WASM.

Read the blog post
Comment on Hacker News
Visit the repo:Ā SnapletĀ |Ā Supabase

Security updates

We're making some changes to the way the Dashboard interacts with your database. These changes simplify the database permissions so that it's easier for you to migrate in and out of Supabase, and they reduce the security surface area considerably. The change will be applied automatically in November, or you can run it today via the Dashboard.

Review the Security Notice.

Quick product updates

  • Edge functions free plan script size is bumped to 2 MB
  • functions-goĀ was just contributed to supabase-community byĀ Zain Khan
  • A newĀ guideĀ to add captcha to your sign-in, sign-up, and password reset forms
  • New Postgres Extension for monitoring your PostgreSQL database network traffic:Ā pg_netstat
  • AddedĀ docsĀ for how caching works in Supabase

System updates

All projects

New projects

  • PostgreSQL updated to v14.1

Manual Changes Required

Update custom auth functions

Details

The PostgREST release notes document some changes to the way GUC variables are handled here.

Supabase has created a config flag in the Dashboard to ensure that this will not be a breaking change. These changes are required before you can upgrade to PostgreSQL 14+, or use Realtime RLS.

Supabase has already updated all the default auth functions (auth.uid(), auth.role() and auth.email()), however we have no way of updating functions which we have not written ourselves.

Affected

  • Any project that have custom auth functions or generally any function that use legacy GUC naming convention to access JWT claims (eg current_setting('request.jwt.claims.XXX', true).
    • This change is required for PostgreSQL 14+.
    • This change is required for Realtime row level security

Unaffected

  • New projects
  • Existing projects who haven't written custom auth functions.

How to update

You need to update all functions that are using the legacy GUC naming convention (current_setting('request.jwt.claims.XXX', true)) to use the new convention (current_setting('request.jwt.claims', true)::json->>'XXX').

After you have made this change, you can safely

Example

For example, Supabase rewrote the auth.role() functions like this, to handle both legacy and new:


_19
-- PREVIOUSLY
_19
create or replace function auth.role()
_19
returns text
_19
language sql stable
_19
as $$
_19
select current_setting('request.jwt.claim.role', true)::text;
_19
$$;
_19
_19
-- UPDATED FUNCTION TO HANDLE NEW GUC NAMING SCHEME
_19
create or replace function auth.role()
_19
returns text
_19
language sql stable
_19
as $$
_19
select
_19
\tcoalesce(
_19
\t\tcurrent_setting('request.jwt.claim.role', true),
_19
\t\t(current_setting('request.jwt.claims', true)::jsonb ->> 'role')
_19
\t)::text
_19
$$;

Three new Auth providers, multi-schema support, and we're gearing up for another Launch Week. Let's dive into what's been happening at Supabase during the month of October.

This is also available as a blog post and a video demo.

Slack, Spotify, and MessageBird logins

Thanks to @HarryET and our friends at MessageBird we have 3 new Auth providers this month: Slack, Spotify, and MessageBird phone logins.

supabase-auth-slack

Multi-schema support

Dashboard

Browse data in any database schema using the Schema switcher in the Dashbaord.

multi-schema

API

You can access any schema with your API, after enabling access in the Dashboard. Docs.

supabase-multi-schema-support

Fresh Docs and Guides

We have a TON of new guides, with videos too.

Database Functions

Learn about PostgreSQL Functions. Docs.

https://youtu.be/MJZCCpCYEqk

Auth Overview

Learn about all the exciting feature of Auth within Supabase. Docs.

https://youtu.be/6ow_jW4epf8

API Features

Learn more about the power of PostgREST for RESTful APIs. Docs.

https://youtu.be/rPAJJFdtPw0

And more

Community

There was a lot of activity this month.

Supabase at Jamstack conf

Supabase attended the Jamstack conf. Watch us catch up with Matt, the cofounder of Netlify (minute 8).

https://youtu.be/phC14xfwvjc

Supabase at Next.js conf

And Jon made a guest appearance at this year's amazing Next.js Conf.

https://youtu.be/GpXEMB1pDRE

Community Highlights

  • Vue 3 | Workout Tracker App - John Komarnicki video
  • Adalo + Supabase - Flywheel Media video
  • Nuxt 3 Beta + Supabase - BenCodeZen video
  • Made With Supabase (now on Nuxt 3) - Zernonia site
  • Nuxt 3 + Tailwind + Supabase - Ekene Eze video
  • SQL Functions - Răzvan Stătescu article
  • supabase-py v0.0.3 released - repo
  • nuxt-supabase v2.2.1 released - repo
  • vue-supabase v2.2.3 released - repo

GitHub

We hit 20K stars!! 21,268 to be exact: github.com/supabase/supabase

stars

Source: repository.surf/supabase

Check out some of our other community stats in our latest Series A Blog Post.

Coming Next: Launch Week III

We had Launch Week numero uno in March, and the sequel "Launch Week II: the SQL" in July.

Now we're going even bigger with the third installment: Launch Week III: The Trilogy. Join us on 29th November on our Discord.

Did you know it's been 2 years since the first commit to Realtime, our real-time engine for Postgres? Before we even existed as a company!

We spent this month improving docs and content content, improving UX, and onboarding Developer Advocates!

Hackathon v2

To kick off Hacktoberfest, another Supabase Hackathon is happening right now. You've got another 7 days to be in to win a limited edition t-shirt.

Abort Requests

We added support for AbortController in our Javascript library so that you can abort long-running queries. [Docs]

Improved table management

We've made a number of changes to the Dashboard to expose some great features of PostgreSQL including:

Column types

We've improved the column Type field so that it supports your custom types.

Is Unique

We've made it simple to add a unique constraint.

Edit columns

By popular request, you can now view all columns in a table at a glance and edit them in bulk.

Cross-schema relationships

We updated our grid to support relationships across multiple schemas.

Improved Auth Docs

We've revamped the Auth docs - The docs are now broken down into Authentication and Authorization, and organized alongside our Deep Dive series.

Low Code demo

Low Code demo, Using Supabase with Clutch.io - @_dijonmusters ran a session at General Assembly showing how to use these two tools together to create apps using a low code approach. https://youtu.be/5fsKMTeBKKY

Community

There was a lot of new content this month.

Videos

Twitter

We hit 16.5k followers. Follow us there for advance frontend tips and šŸ‘ļøāš”šŸ‘ļø

GitHub

Not far from 20K stars: github.com/supabase/supabase Source: repository.surf/supabase

Discord

Our Discord is growing fast. Come hangout with 3500+ developers building on Supabase today: discord.supabase.com

Hiring

We're Hiring SREs. We're fully remote and we love Open Source. See open roles.

Coming Next

We're warming up for another Launch Week! Last time was "Launch Week II: the SQL". We're going to need another month to come up with a good pun again, so we'll aim for November.

Get started

August Beta 2021

Sep 13, 2021

We've raised $30M and shipped a bunch of features. Let's dive into what's been happening at Supabase during the month of August.

This is also available as a blog post and a video demo.

We raised $30 million

We raised our Series A. We'll use the funds to do more of the same - ship features and hire open source developers. We'll release more details soon. Read more on TechCrunch.

Realtime Security, codename: WALRUS

If you've been waiting for Row Level Security to land in Postgres subscriptions, then you're going to love our new repo: Write Ahead Log Realtime Unified Security (WALRUS). The name might be a bit forced, but the security design is deliberate. It's not in production yet, but we're making the repo public for comments using an RFC process.

Custom SMS templates

If you're using SMS login in Auth v2, you can now customize the SMS which is sent to your users. Read more in the docs.

Dart and Flutter Docs

Thanks entirely to @dshukertjr, we now have in-depth reference Dart documentation for CRUD, Auth, Realtime and more!

We launched the South Korea region

We added another region for those wanting to host their data and APIs in Seoul. We now have 12 regions to choose from

Table creation is even easier

You can now create columns while creating your table. We've also added improvements for composite primary keys and foreign key creation.

Unbreakable CSV Imports

Our previous importer would choke on CSV files which were too large. Not any more!

Connection strings

We now provide a handy copy utility for various database connection strings because we were so tired of looking them up on Stack Overflow.

We released a primer on Row Level Security

RLS can be a bit foreign for developers getting started with Postgres. This video by @_dijonmusters demystifies it. If you find the video a useful medium for learning, consider subscribing to our channel.

https://www.youtube.com/watch?v=Ow_Uzedfohk

Community

We had a community Hackathon

We held a one-week async Hackathon. Check out all the winners - it was truly impressive what people were able to build in just 7 days.

We had a team Hackathon

The Supabase team didn't want to miss out on the fun so we held our own hackathon. It was a good way to dog-food. Some notable projects include

We hit 18,000 stars on GitHub, and got to the top of GitHub trending for Typescript.

repository.surf/supabase

If you want to keep up to date, make sure you subscribe to our YouTube channel or follow us on Twitter.

Dependency contributions

GoTrue (Auth)

PostgREST (APIs)

pg_net (Function Hooks)

Coming Next

Last December we moved from Alpha to Beta, with a focus on Security, Performance, and Reliability. After a couple of Launch Weeks pushing out new and sexy features, we have decided it's time to focus on these again.

By the time we're done, Supabase will be production-ready for all use cases.

Get started

July Beta 2021

Aug 12, 2021

Supabase is gearing up for another Launch Week on July the 26th. Until then, here's a few new things to try.

This is also available as a blog post and a video demo.

Launch Week II: The SQL

Following the success of our first Launch Week in March, we finished the July with "Launch Week II: The SQL". The community has been sieving through a slew of bad puns and retro memes to discover the new feature announcements.

Auth v2 with Phone Auth

Your users can now log in with SMS based mobile auth! We have a Twilio integration (Guide Here) and will be adding more providers soon.

Other Auth updating include, Twitch logins, and the ability to generate invite, recovery, confirmation, and magic links via the API, for people who want more control over the email templating flow. Read the blog post here.

Storage is now in Beta

Storage updates include Media Streaming, Public Buckets, Directory Uploads, and a Performance Improvements.

Streaming Media in particular opens up a whole new host of potential use cases, learn more about the updates here.

Dashboard v2

We made some major new additions to the dashboard including usage statistics, a new project home, and tons of database insights. Check the post here on what you get and how we built it.

We launched a Discord server

You'll find us hanging out regularly in the #hangout channel. We even "live-fixed" some production errors in there on Monday night (which occurred literally 1 hour before our first announcement of the week! Typical!). We're fast approaching 1,500 members so come and join the action! discord.supabase.com

PostgreSQL 13

All new Supabase projects will be launched with PostgreSQL 13.3, and we're working on a migration path for old projects. This gives you looooaads of new stuff out the box.

PostgREST v8.0

We worked with our friends at PostgREST to make some huge improvements. For those of you who don't know, every Supabase instance comes with a dedicated PostgREST server by default, which provides the auto-generated CRUD API that we wrap with supabase-js.

Flutter/Dart support

Our community driven libs for the fasted growing mobile and web framework are now in beta. Learn more by following the Quickstart guide.

Hackathon

We're running a week long hackathon starting NOW. There are some legit prizes, and you can win in a bunch of different categories. Check the full instructions here on how to participate. Submissions close next Friday at midnight PST.

Hooks & Functions

We made an announcement on the progress of functions, and even shipped a few preliminary components, try them out and give us feedback as we continue to move towards this next major milestone. Read the latest updates here.

Swag Store

Get your hands on some Supabase Swag, hand packed and mailed by our team based in Singapore.

Community

SupabaseĀ Github Star GrowthĀ 

If you want to keep up to date, make sure you subscribe to our YouTube channel or follow us on Twitter.

Coming Next

Security, stability, performance ... and Functions.

Get started

Build in a weekend, scale to millions