supashim
supashim copied to clipboard
Use Supabase as a drop-in replacement for Firebase
Package Firebase apps for self-hosting by using Supabase as a drop-in replacement for Firebase.
⚠️ Warning: Under Active Development!
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.
Background
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.
Currently In Progress
Firestore
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.
Roadmap
We plan to work on shimming the following features next (in this order):
-
storage
Firebase Cloud Storage -
auth
Firebase Authentication
Not Currently Planned
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 Analytics -
app-check
Firebase App Check -
database
Firebase Realtime Database -
functions
Firebase Functions -
messaging
Firebase Cloud Messaging -
performance
Firebase Performance Monitoring -
remote-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.