Package Firebase apps for self-hosting by using Supabase as a drop-in replacement for Firebase.
This repo is under active development. It is not ready to be used (definitely not in production, and probably not even in testing).
We'd love help, feedback, and contributions. Please use GitHub Discussions to get involved.
At Roboflow we are heavy users of Firebase. But we are working on on-prem deployment for our customers and there is no self-hosted version of Firebase.
This is where Supabase and supashim
come in.
Supabase is an open-source Firebase alternative that shares many of
the features of Firebase and is able to be self-hosted
using Docker Compose
or Kubernetes.
Supashim is a shim that hooks into the Firebase calls from your app and
translates them into the Supabase equivalents. This means you will be
able to take an existing Firebase app and simply swap out the firebase
global for supashim
to package a self-hosted version of your Firebase
app (or to migrate to a Supabase backend) without having to change any
application code.
The shim for firestore
is in development on the prototype/firestore
branch. Currently, it is working to connect to Supabase, read/write data,
recommend and create Postgres indexes (via RPC).
Firestore features currently in active development are:
- Support for realtime queries (this is mocked by polling the query for now)
- Translating Firestore Security Rules into Supabase/Postgres Row Level Security.
We plan to work on shimming the following features next (in this order):
storage
Firebase Cloud Storageauth
Firebase Authentication
We don't need the following Firebase features for our use-case so do not plan to build them ourselves (and there may not be clear Supabase equivalents) but we would love to have them added to the project by an external contributor if possible:
analytics
Firebase Analyticsapp-check
Firebase App Checkdatabase
Firebase Realtime Databasefunctions
Firebase Functionsmessaging
Firebase Cloud Messagingperformance
Firebase Performance Monitoringremote-config
Firebase Remote Config- Other features not included in the JS API like Firebase Hosting and Firebase ML.
Please start a Discussion to make a proposal if you'd like to work on any of these or see them added.