The tools you choose for your stack is key for any project. One-size-fits-all solutions may appeal, but they are usually more trouble than they are worth.
Andreas Møller
February 25, 2024
One of the questions we get asked most often is:
"Why doesn't toddle have a database?"
To answer this question, we need to understand a little bit about how web applications work.
The anatomy of a web application
Modern web applications generally consist of two parts. The front-end is an application running in the browser on the user's machine, and the back-end runs on one or more servers.
The benefit of this model is that many instances of the same client application can use the same server and access the same data.
Let's take a closer look at the server or "back-end."
A back-end almost always consists of at least three different parts. A database for storing the user's data, an authentication system for verifying users' identity, and some custom logic that defines the various operations a user can do on the server.
Initially, this might not look too complicated, and it is reasonably straightforward for many applications.
The problem with one-size-fits-all solutions that aim to provide all of the above is that, over time, your application requirements will likely change.
Let's take Authentication as an example. Initially, the traditional email and password login might be fine, but eventually, you will most likely want to offer different options.
Each application usually has a different list of identity providers that is relevant. Do you need 2-factor authentication right now? How about later?
You also need to decide which database is right for your project. There are all sorts, and they each have different tradeoffs. Do you need more than one?
What other capabilities will your application need
Media streaming?
File storage?
Emails?
AI?
A native mobile application alongside your web application?
Most will answer: "I don't know". It's hard to know in the beginning and products have a way of taking on a life of their own.
The best design is the one that is easiest to change when you realize that your assumptions were wrong.
At the beginning of a project, you don't know enough to make all these decisions. That is why it is important to choose technologies that let you quickly make changes as you learn.
One-size-fits-all technologies always become one-size-fits-none over time.
Choose your stack carefully
This is why we have chosen to focus on one part of your tech stack and make the best tool we can for just that.
toddle is meant to be combined with other platforms specializing in their part. The backend services we see most often used with toddle are Supabase, Xano, Fastgen, and Buildship. We also have customers who write custom backends.
These are a few tips, but at the end of the day, It's up to you to choose the tools that work best for your project.