Realtime or Firestore Database for Typogram?
Week 43 of Founding Typogram
Hi, I am wentin. I recently quit my job of seven years to build my start-up, Typogram, a logo design and editing tool for startup founder. We just launched our pre-order✨! Get a one brand lifetime license at a huge discount and edit your design forever.
It is not uncommon to see a business offer two flavors of the same product and let the customer decide which is best for them. However, these flavors often come in the form of tiers; like in watercolor art supply, most brands offer a hobbyist/student tier and a professional artist tier, and it is easy for me to decide which tier I belong to. Google Firebase is not one of these — it is super hard to tell whether Typogram is more fitted for Real-time database or Firestore database, two very similar database products that are offered by them.
I find myself scrolling through this page yet again:
I can get both database products to work with the Typogram, but I don’t know which one is better, as in more future-proof and more cost-effective. Currently, Typogram is using Firestore.
The Real-time database is Firebase’s original offering, which is super characteristic and particular in the database’s world. It does what its name suggests: real-time data synchronization between clients, super useful for collaborative games and apps — two users drawing collaboratively on a canvas is a typical scenario that the Real-time database is perfect for, as it needs data to be synchronized with low latency, so each user can view the other user’s latest stroke and draw theirs accordingly.
The Firestore is the “all-rounder” database that Google developed after acquiring Firebase Realtime database. Confusingly, Firestore also has the real-time data sync feature, just like the Real-time database is famous for! Interestingly, they didn’t retire the Real-time database but instead offered both with a little caveat to each and left them to the users to choose, and there begins my sophies’ choice, database edition.
Here comes my dilemma:
In the grand scheme of things, Firestore is the more scalable option of the duo; in the case of Typogram growing exponentially after launch, the Firestore can scale seamlessly to accommodate.
On the other hand, the Real-time database offers the potential of adding a multi-player live collaboration feature like Figma (a UX design app), which attracts me. It is not a core feature Typogram needs now, but I think it would be cool to have.
Firestore primarily charges for the number of reads and write requests, while the Realtime database primarily charges based on the data storage size. Without launching the product to the public, it is hard to estimate which one will be cheaper.
Based on the final choice, there are different ways to optimize the cost-effectiveness; however, the engineering effort to optimize for Real-time database is higher.
Sophie’s choice is not getting anywhere until I see this comment on Reddit:
Regarding cost, I say this over and over: It depends. For small apps with a small number of users (less than 150,000), you can use both and barely crack the free tier. Most of the people asking these questions are nowhere near the number of users that would warrant a cost consideration, even in production.
With the cost-effectiveness question out of the picture, I revisit the idea of multi-player collaboration as it is the only argument that I have for switching to the Realtime database. While I still think it is cool, unlike Figma — a UX design tool for teams, Typogram tackles the brand design problem, which is a different beast. I deem multi-player collaboration is not a common use case, at least not in the early stage. I decide to keep using Firestore, and revisit it in the future when Typogram reaches to stage that warrant a cost consideration or new multi-player features.
Did I make the right decision? Only time will tell. Also, it might not be considered a wrong decision if Typogram outgrows the current database choice. It happens with all products. Over the weekend, I heard from a friend that Amazon requires all their software vendors (by which I mean software like Confluence or Miro, or anyone who wants to recruit Amazon as an enterprise customer) to move to Amazon Web Services (AWS), to address their “security concerns.” Who would have foreseen that? No one.
Hear from You
What is your “go-to choice” of cloud services and databases?
See you next week! If you have friends who are interested in founding startups, please consider sharing my newsletter with them!
Thanks for reading wentin’s newsletter! Subscribe for free to receive new posts and support my work.