Firetable – Spreadsheet-like UI for Firestore
firetable.io
firetable.io
> Use our flexible, scalable NoSQL cloud database [called Firestore] to store and sync data for client- and server-side development.
Getting back to what the actual post was about, my first instinct is to find out a way to replace Firebase/Firestore as a dependency of Firetable though -- does anyone know of any API-compatible replacements for Firebase with pluggable backends (minio[0] is to S3 as <something> is to Firebase/Firestore).
I also... kind of think this might be good tech to spin a whole SaaS out of. It'd be unthinkable to try and compete with Airtable if I had to build their frontend but... hosting a database, giving access to shared/private instances of firetable, and trying to out-maneuver (or just undercut) airtable seems like it might not be a completely fool's errand.
[0]: https://min.io/
I am an expert yak shaver, so it would have probably been one of the first things on my mind.
Adding / editing in the Firebase admin UI is also time consuming.
The spreadsheet abstraction feels effective. I'm really looking forward to playing around with this.
(Also, seems like there's some confusion about the Firestore reference: https://firebase.google.com/docs/firestore).
I wouldn't quite compare this with Airtable because even thought the abstraction may look the same, the audience is very different: FireStore's audience is technical, while only a small fraction of Airtable's is technical, which leads to a different set of product priorites and likely a very different long-term roadmap.
Asking because we started off with FireStore, getting a bit of traction now, but I can't see any good reason for us to switch away any time soon.
- Lack of schema makes it really easy write bad data without realising it. I inherited a 3 year old firebase/firestore codebase and database was FULL of inconsistent data. This was not helped by our application being in JavaScript meaning bad data could roundtrip all the way through our without triggering any errors. Only later causing obscure and hard to debug issues.
- Lack of query flexibility or joins make some use cases either impossible or very inefficient
- Connecting directly from client apps makes it very difficult to make backwards compatible changes. You can fix this by making everything go through backend APIs, but then you lose realtime which is the main benefit of firestore in the first place.
We're halfway through a port to Postgres+Hasura, and our app is much more reliable and responsive now.
I do wish they'd add actual migration support though. Firebase has always needed some kind of document views like feature to allow backwards compat, but still allow changing the schema.
https://github.com/bijoutrouvaille/fireward
https://github.com/FirebaseExtended/bolt
I have seen people putting bad security rules often before. It makes me worried about using firebase apps.
No proper rate limiting, protected fields, dashboard sucks, opened feature requests for years without any answers, missing ton of small stuff I can't remember that is very easy to do on postgres (counters?), etc.
I have used hasura. It's good but I like supabase more now. Easier to directly write SQL than indirection of graphql.
> I have used hasura. It's good but I like supabase more now. Easier to directly write SQL than indirection of graphql.
Supabase looks really nice. I'd definitely consider it for new projects. The nice thing about Hasura is you have full access to the underlying Postgres DB. We are actually writing SQL for most of our data fetching needs with a traditional express backend. We're only going through Hasura when we need realtime capabilities. But it's pretty nice to be a bolt it on and get subscriptions out of the box :)
You trade these things to get scale out:
- SQL joins and queries regardless of your schema.
- Enforcing public interfaces for reads/writes.
- Zero latency for admin operations.
- Global transactions.
- Auth logic written directly in your language, running where your data is.
The trade is not worth it if you do not use the scale out feature of Firestore.
I would just go with HTTP/websockets, typed language, SQLite and a single VM until you prove you need to scale out.
- Gather firebase's "true" API surface/interface, create a model in your typed language of choice. This might be easier/harder depending on how many special features there are... I haven't really seen openapi schemas for firebase, but that would make this really easy.
- Make implementations that don't save to firebase (and probably one that does, since it'd be very easy to write and would be a good baseline)
- Create a per-version fork of the firebase SDKs (ex. JS[0]) that points at your servers instead of Google's
- Offer a cheaper firebase (you could aim at Heroku customers?)
- Offer a painless migration from firebase as a feature
- ????
- Profit
Business model risks: Google lowering prices on firebase, doing this themselves, etc.
Trying to convince everyone in the world to use the right solution for their actual problem the first time (and effectively going against Google's marketing machine, momentum of the general project, discounted plans, etc) is not my cup of tea.
IMO the right database for the overwhelming majority of startups is Postgres, vertically scaled until it needs read-replicas. The extension ecosystem, burgeoning support for configurable table access methods makes it a no-brainer. I don't have sufficient experience to back this statement (I haven't run that many startups, I don't run an accelerator/VC, etc) but I'd love it if some else that could refute it would show up.
1. Generous, hosted free tier. I don't have to fiddle with setting up a database or paying for it. And I really do mean generous. You can run a small business off the free tier if you code it in a way that doesn't use unnecessary reads and writes. I've done it.
2. Development speed. It's all schema-less, which is (sometimes) one less thing to worry about at the start of a project. Firestore is the fastest way to get a functional proof-of-concept I have ever seen.
3. Realtime. This means your frontend gets instant live updates out of the box. This can be pretty hard to achieve with other solutions, but comes free with Firestore.
4. Securely connect directly from the client. This means you don't need a backend at all, which is a huge win when you're just tinkering.
5. Amazing cross platform support. Setting up the connection to the database from iOS, Android, or Web takes a matter of minutes.
Now, a lot of these early wins come with growing pains later on. But early wins are still a great thing if it is the difference between your project getting off the ground, or failing from the start. I don't really use Firestore anymore, but there is a lot I liked about it.
We're open source, just came through the last YC batch. We use Postgres for the database, with an airtable-like editor in the dashboard. Since it's Postgres, migration is easy too - just dump your database and take it elsewhere
"While we're in alpha we are free to use. In the future, we will charge for hosting."
Also the pricing setup, im just not sure about it.
Currently i have decoupled all database layer operations behind a Repository service in Golang.
(alternativeto had a comment from June saying it was closed source.)
Heads up: This seems to be built on top of Firestore. I'm not saying security can't be good[0], but it seems it can't be hosted locally.
[0]: In fact I guess in the long run the security of Firestore will be better than anything most of us can do at home.
That's why I'm not taking it for a spin just yet.
1. You can embed Airtables. Combine that with a Markdown editor and you have a powerful note taking device similar to Notion.
2. Public forms. Basically you can turn the table into a form and the data users enter into it become rows in an Airtable. Not achievable with Trello/Notion.
3. It has a functioning API, unlike Notion. I can add/retrieve/modify data via scripts/IFTTT/Zapier.
4. Org charts and Gantt charts.