Description
Is your feature request related to a problem? Please describe.
Firebase is great, performs well and is limited in the free tier (which is totally fine of course). But to make SongDrive completely FOSS I more and more like the idea of providing a realtime backend, which is self hostable, more flexible and not limited to request count per time.
SongDrive is currently build on top of Firestore, a document/collection based realtime database from Firebase/Google. It uses CRUD calls to FB endpoints (creating, reading, updating and deleting documents) and listeners for changes in each collection. And it uses the Firebase authentication to hold user records and their permissions (4 different roles).
Main questions are:
- Does SongDrive really need to be realtime everywhere? It's neat, but is it necessary?
- Which features really require realtime? Like Setlist Sync, song key changes, etc.
- How much effort is the creation of a self-hosted backend? Which solutions are a good fit?
- How much effort is the migration from Firestore to the new backend?
Describe the solution you'd like
Just recently, Laravel Reverb got released, which could be a solution.
Describe alternatives you've considered
Supabase could be an alternative, but it's pretty much the same in green (literally) and using Postgres instead of doc-based approach.
Additional context
Before extending the current data structure as of #145, #163, #201 and #202, this should be decided first.
Tagging @EinEnton for reference.