Supabase is a collaborative company. We work with, sponsor, and support as many open source tools as possible. Here’s a few of this community highlights from the past 3 months.
Our Integrations Marketplace continues to grow. This past few months has brought a number of new partners and collaborations:
We’ve worked with the RDS team to build out the pg_tle extension and tooling and integrating it into Supabase. These changes are a stepping stone towards running the Supabase stack on AWS RDS. Special shoutout to @jkatz, who was an instrumental collaborator and the rest of the RDS team who have been helping to transition PL/Rust into a Trusted Language.
Read the press announcement on Amazon.com.
Read about pg_tle at Supabase and our collaboration with AWS.
Read about our experimental database registry, database.dev.
Along with our new Clickhouse Foreign Data Wrapper, our friends at Clickhouse created guides showing the bidirectional capabilities between Supabase Postgres and Clickhouse Cloud. This is a perfect pairing when you’re consolidating your operational data with your analytical data, or if you have long-running queries that you need to offload to an analytical database like Clickhouse.
It’s always fun when two open source communities join forces. LangChain is an open source framework for developing applications powered by language models. This week, to support the Supabase AI Hackathon, they released a Supabase x LangChain template, one of the fastest ways to build AI applications. Their community recently made two contributions for Supabase: adding Supabase as a Vector Store, and a neat Hybrid Search algorithm using Postgres’ Full Text Search. The also
Vercel + OpenAI
Do we even need to introduce Vercel and OpenAI? We have a new template in the Vercel Marketplace for creating GPT-search for your MDX files. The templates takes all the
.mdx files in the
pagesdirectory and processes them to use as custom context within OpenAI Text Completion prompts.
Doppler is a fully managed SecretOps platform that helps centralize, orchestrate, and rotate secrets in any environment. Your team can mitigate and remediate risks while using tools that fit natively into existing developer workflows.They just released an integration to automatically sync all of your team's secrets to Supabase.
The RedwoodJS team has contributed a new framework Quick Start to our docs that will get you from zero to fullstack app with Prisma in just 2 minutes. Big shoutout to @dthyresson who continues to be a valuable contributor across many open source communities.
Dart Edge for Supabase Edge Functions
Dart Edge, built by Invertase, allows developers to write edge functions in Dart. Previously, Flutter developers had to use TypeScript for their edge functions, as it was the only supported language. However, with Dart Edge, Flutter developers can write backend code using their favorite programming language, Dart!
T3 Turbo x Supabase
T3 Turbo is a type-safe, full-stack template to create Next.js and Expo React Native applications. Using our recent Mobile Auth updates, the T3 community has helped build the Supabase Create T3 Turbo template, the fastest and easiest way to get started with Supabase and the T3 Stack. Huge shout out to Julius who single-handedly created the template!
Self-hosting with Digital Ocean and Stackgres
This Launch Week had a big focus on self-hosting, adding support for self-hosted Logs and Edge Functions. Along with our official self-hosting guides (and existing community support for AWS, k8s, Traefik, and Terraform), we have a couple of new entrants into the community:
We’re looking for more self-hosting maintainers, especially for the self-hosted guides. Everything we do is MIT, Apache2, or PostgreSQL licensed, but our team is relatively small and we don’t have expertise for every deployment strategy that our community might want. If you are willing to help out on a regular basis please reach out!
Postgres Extensions and improvements
The community continues to add and improve the extensions and configuration for our Postgres image. Here are a few of the crowd favorites:
pgvector: Open-source vector similarity search for Postgres
Just as it says on the label:
pgvector enables vector functionality within Postgres. It’s been, by far, our most popular addition to date as it can be used to store OpenAI embeddings and serves as an alternative to Pinecone and Milvus.
HypoPG: Hypothetical indexes
HypoPG allows you to create hypothetical indexes that are visible to the PostgreSQL query planner, with no resource cost (CPU, disk, memory). This allows users to “try out” an index without waiting for the server to build them. We have big plans for this extension - we’ll integrate this functionality into the dashboard with an Index Advisor to help you optimize slow-running queries.
pg_tle: Install your own extensions
We’ve been working with the RDS team to make Postgres even more extensible. While you typically need to wait for Cloud Providers to add extension support to their Postgres offering, pgtle is a step towards making this _user managed. We’ve even built a proof-of-concept registry (similar to NPM or Cargo) where you can upload extensions and share them with the community.
Link to blog post.
PGroonga is an extension implementing full-text search in multiple languages. In v3, PGroonga becomes fully compatible with the Supabase extensions schema deprecating the need to explicitly write a schema for operators. It also increases support for text and varchar array types. They just released this in time for Supabase Launch Week, so we’ll roll it out to the platform in the next month.
PG has supported LZ4 page and row compression since v14, with WAL compression added in v15. LZ4 is faster than the standard pglz method. Supabase is now fully-compatible with this option. This is especially useful for TOAST values and WAL compression.
Supabase Postgres has been configured with ICU support. This makes it possible to use ICU locales as collation providers. ICU supports many languages and makes the ordering of text type attributes according to these language rules.
Client Libraries and utilities
It’s becoming easier to build applications with any language.
Support for Swift, Python, and C#
In the past few months, the community has rallied and shipped 3 new client libraries, complete with Docs:
- Documentation | Source Code
- Shout-out to: grsouza & @maail
- Documentation | Source Code
- Shout-out to: @
- Documentation | Source Code
- Maintainers: @acupofjose, @veleek, and @rhuanbarros
These libraries are in various stages of readiness, so if you find anything that can be improved don’t hesitate to jump into the source code and help out.
Supabase Cache Helpers
Philipp just released 1.0 of “Supabase Cache Helpers”, a collection of cache utilities for Supabase. With just a line of code, you can simplify the logic of fetching, subscribing to updates, and mutating data as well as storage objects in your project, and have all the amazing features of SWR or React Query. The cache helpers parse queries into a unique and definite query keys, automatically populating the query cache with every mutation using implicit knowledge of the schema.
SupaShim by Roboflow
The team at Roboflow just released
supashim, which hooks into the Firebase calls from your app and translates them into the Supabase equivalents. With supashim, you can take an existing Firebase app, swap out the
firebase global for
supashim, then point it to a self-hosted Supabase instance without changing any application code. Pretty neat!
We’ve been upstreaming as many changes as possible for Supabase stack.
We’ve submitted a number of patches to the Postgres Core:
- Added the “USER SET” parameter values for
pg_db_role_setting. This GUC variable lets ordinary roles set placeholder variables, when permission requirements are not known yet [Patch]
- Added support for custom tuple slots in the custom executor nodes. This is useful for custom table access methods. [Patch]
- Optimizations for LWlock waiting queue scalability. Long LWlock wait queues were not effective at unlocking. We’ve submitted proposals to make the queue lockless (still under community consideration). [Discussion one, two, three]
We continue to support the development of OrioleDB, who are building scalable storage mechanisms for Postgres using table access methods. The OrioleDB extension is now version Alpha12 and compatible with Postgres 15.
This release includes various improvements and fixes, including parallel sequential scan of OrioleDB relations. This allows multi-CPU systems to speed up select queries that involve sequential scans. It’s an analogue of heap parallel scan in Postgres core but for index-organized tables. With this base, we’re now implementing methods to build Orioledb indexes using many parallel workers.
We also want to highlight all the humans who have made meaningful contributions to the Supabase ecosystem since our last Launch Week:
- Gary and Olyno - official moderators of our Discord and overall incredibly helpful people. The community would not be the same without them
- Bruno D'Luka - Caring for the details of Flutter SDK so that we can provide the best DX for Flutter devs
- CodewithGuillaume - Creating a series of YouTube videos explaining different components of Supabase.
- Daniel Mossaband - Worked on fixing bugs and adding features to bring the mobile auth to Supabase
- David Plugge - Working on improving the auth-helpers and fixing issues users report.
- Jonathan Wilke - built SupaStarter.dev. A SaaS for building SaaSes.
- grsouza & Maail - Built the Swift libraries and documentation.
- Raphaël Moreau - Built the supa-stripe-stack for Remix to get started building your SaaS in one command. Also the creator the supa-fly-stack and supa-remix-stack
- Vinzent - Constantly smashing it on the Flutter SDK adding major features such as MFA.
- Tiniscule - for his open source Supabase Starter kit.
And you, our community. Thank you for using Supabase, reading our blog posts, and showing your support. With over 48,000 GitHub stars, we are now in the top 180 most-popular repositories in all of GitHub. We still have a long way to go, but it’s a lot more fun doing it collaboratively.