This month was a "gardening" month for Supabase. The team focused on stability, security, and community support.
Check out what we were working on below, as well as some incredible Community contributions.
This is also available as a blog post and a video demo.
Light Mode
We're a developer tool, which means that Dark Mode is extremely popular.
While Dark mode is great, for some people it's not an option. Dark Mode is difficult to use for developers with astigmatisms,
or even just working in brightly-lit environments.
So today we're shipping Light Mode. Access it in the settings of your Dashboard.
Translations
With the help of the community, we started internationalizing our main repository:
- Arabic | العربية
- Chinese / 中文
- Dutch / Nederlands
- English
- French / Français
- German / Deutsch
- Hindi / हिंदी
- Nepali / नेपाली
- Italiano / Italian
- Japanese / 日本語
- Norwegian (Bokmål) / Norsk (Bokmål)
- Polish / Polski
- Portuguese / Portuguese
- Portuguese (Brazilian) / Português Brasileiro
- Russian / Pусский
- Spanish / Español
- Traditional Chinese / 正體中文
- Turkish / Türkçe
- Ukrainian / Українська
OpenAPI spec for Storage
We released Storage Api docs built using OpenAPI (swagger).
Stripe Sync Engine (Experimental)
We open-sourced a server which keeps any Postgres database in sync with Stripe.
This is experimental only. We're evaluating other tools such as Singer,
which provide a more general solution (but are less "realtime"), and we're opening it up here to gather feedback.
Community spotlight: Threaded comments
One of the most powerful Postgres features is "recursive CTEs" which can be used for nested items (comments, pages, friend-graphs). @lawrencecchen has built a full Threaded Comments demo which you can Deploy with a single click. Want to add comments to your blog with Full Text Search? Just use Postgres.
Screen.Recording.2021-05-02.at.9.48.19.PM.mov
Community spotlight: SupaScript
It looks like @burggraf2 got tired of waiting for us to ship Functions, and decided to
build a whole JS ecosystem within his Supabase database. If you want to write PG functions in JS, import remote libraries
from the web, and console log to your browser, check out this SupaScript repo.
// After installing:
// https://github.com/burggraf/SupaScript#installation
/**
* Get all users who logged in this week.
* Use in the database: select * from users_this_week();
* Use in the browser: supabase.rpc('users_this_week');
*/
create or replace function users_this_week()
returns json as $$
const moment = require('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.js', false);
const lastWeek = moment().subtract(7, 'days');
const query = 'select * from auth.users where created_at > $1'
const users = sql(query, lastWeek);
return users;
$$ language plv8;
Community
- Watch @everConfusedGuy's talk at DevX conf - Building Supabase Storage: YouTube video
- DuckDuckAbdaal by @Nutlope - a personalized search engine: Twitter
- Supabase in 6 minutes by Georges Duverger: YouTube video
- Build a SaaS Platform with Stripe by @__dijonmusters: DEV blog
- Supabase & Sveltekit by Svelte Mastery: YouTube video
- Firebase vs. Supabase - Draftbit Office Hours: YouTube Livestream
Supabase Github Star Growth
- Our main GitHub repo grew 60% (by stars) and we saw a flood of new contributors.
- Our UI Library grew 175%
- Our Realtime Server grew 39% after landing on the front page of Hacker News.
If you want to keep up to date, make sure you subscribe to our YouTube channel or follow us on Twitter.
Coming Next
You might have noticed our Dashboard slowly changing (improving), as we migrate the components out to our open source UI Library. This progression is an important step towards offering a UI for Local Development and Self Hosting.
We're also working on our Workflows engine. This is quite a large task, but we're making progress and aiming to ship sometime in July.
One more thing
Get started
- Start using Supabase today: app.supabase.io
- Make sure to star us on GitHub
- Follow us on Twitter
- Subscribe to our YouTube channel
- Become a sponsor