For anyone looking to replace Firebase with plain Postgres, I am went through the same exercise last year an I’m opensourcing the work I did - https://supabase.io The hardest part was the real-time functionality. I ended up writing an elixir server that listens to Postgres’ built-in replication stream, converts it into JSON, then sends it over websockets.
SapphireDb – Open-Source Alternative to Firebase
51–60 of 63 posts
Re: SapphireDb – Open-Source Alternative to Firebase
#52Earlier quoted context omitted.
Sandstorm Oasis going away and the last time I checked (maybe a year ago?) work seemed to have stopped on getting the protocol implemented in the browser.
Hi, I'm the author of Cap'n Proto, and co-founder of Sandstorm.io. When Sandstorm failed, I went to Cloudflare where I'm leading the Cloudflare Workers project. We're using Cap'n Proto (including RPC) pretty heavily there! That said, it's true that Cap'n Proto relies on its users to contribute improvements to the implementation. We don't currently have a team who can dedicate their time to building out capnp implemen…
That's interesting that you feel Sandstorm failed. I draw inspiration from it on a regular basis for several of my projects. Maybe it was just ahead of its time.
Re: SapphireDb – Open-Source Alternative to Firebase
#53For anyone looking to replace Firebase with plain Postgres, I am went through the same exercise last year an I’m opensourcing the work I did - https://supabase.io The hardest part was the real-time functionality. I ended up writing an elixir server that listens to Postgres’ built-in replication stream, converts it into JSON, then sends it over websockets.
Re: SapphireDb – Open-Source Alternative to Firebase
#54For anyone looking to replace Firebase with plain Postgres, I am went through the same exercise last year an I’m opensourcing the work I did - https://supabase.io The hardest part was the real-time functionality. I ended up writing an elixir server that listens to Postgres’ built-in replication stream, converts it into JSON, then sends it over websockets.
Is it supposed to be self-hosted? Wasn’t clear to me after taking a quick look.
Re: SapphireDb – Open-Source Alternative to Firebase
#55For anyone looking to replace Firebase with plain Postgres, I am went through the same exercise last year an I’m opensourcing the work I did - https://supabase.io The hardest part was the real-time functionality. I ended up writing an elixir server that listens to Postgres’ built-in replication stream, converts it into JSON, then sends it over websockets.
Edit: also, Debezium might be a good backend for this, that way you would be able to support other databases than Postgres.
Re: SapphireDb – Open-Source Alternative to Firebase
#56Re: SapphireDb – Open-Source Alternative to Firebase
#57I'm a competitor, and I want to applaud this work! - SapphireDB is truly Open Source, MIT! - There demo worked like a charm! We could really use more projects like this out there. Here is a criticism though: - It seems currently to only support Angular (?), which is gonna harm its adoption. My recommendation would be to commit to Svelte, it seems like it will be the "next big thing" in the JS world, and could help dr…
Offtopic: > to commit to Svelte, it seems like it will be the "next big thing" in the JS world How long does it usually take? In the JS world? Serious question as I am not in the JS world but reading HN/Reddit I would believe that things change quite fast. Someone told me over 1 year ago Svelte would be the next big thing and I see ‘no-one’ using it besides some hardcore enthusiasts; it is even hardly ever mentioned…
Svelte has a lot of interest, but it also has a very long way to go against a popular, 6 year old project.
Re: SapphireDb – Open-Source Alternative to Firebase
#58Earlier quoted context omitted.
Hi, I'm the author of Cap'n Proto, and co-founder of Sandstorm.io. When Sandstorm failed, I went to Cloudflare where I'm leading the Cloudflare Workers project. We're using Cap'n Proto (including RPC) pretty heavily there! That said, it's true that Cap'n Proto relies on its users to contribute improvements to the implementation. We don't currently have a team who can dedicate their time to building out capnp implemen…
Glad to hear it! It really would be a shame for such a great protocol to go unused. That's interesting that you feel Sandstorm failed. I draw inspiration from it on a regular basis for several of my projects. Maybe it was just ahead of its time.
Sandstorm the company definitely failed (ran out of money and couldn't raise more, while having negligible actual revenue). Sandstorm the open source project continues and has actually seen an uptick in development activity lately.
Re: SapphireDb – Open-Source Alternative to Firebase
#59Creator of Redwood here, which is similar in many ways to this and GunDB (hi Mark!). Agreed that we need more projects like this. Redwood might be better described as a "p2p application platform" than a realtime database, but there's plenty of overlap. It's written in Go, supports HTTPS, Libp2p, and WebRTC transports (and soon, a Cap'n Proto RPC interface). It can also: - serve as a Git remote - stand in as an applic…
Re: SapphireDb – Open-Source Alternative to Firebase
#60For anyone looking to replace Firebase with plain Postgres, I am went through the same exercise last year an I’m opensourcing the work I did - https://supabase.io The hardest part was the real-time functionality. I ended up writing an elixir server that listens to Postgres’ built-in replication stream, converts it into JSON, then sends it over websockets.
Neat. Did you have a look at Hasura before you implemented this, or does your solution have other features you needed? Edit: also, Debezium might be a good backend for this, that way you would be able to support other databases than Postgres.
The issue with NOTIFY is that it has an 8000 byte limit. Some of our updates are large (JSONB columns) so we need more than 8000 bytes, or we would have to notify just the row identifier, then fetch the data (inefficient).
Supabase hooks in to Postgres' replication stream so there is no issue. It converts the streaming bytes to JSON.
One other bonus - you don't have to set a trigger on every table. Just run `CREATE PUBLICATION supabase_realtime ON ALL TABLES`, then you're good to go.