Over the last 10+ years we’ve seen the emergence of backends-as-a-service and in the last ~5 a refinement and expansion of those services as well as innovative open source projects that have helped to liberate the backend from the dimly-lit dungeons of DB and Systems Administrators™️. This has made it possible for more people to make the leap and leverage backend services and platforms which provide a more modular and less technical way to build. And in even more recent years, the trend toward #NoCode has begun to fuse with that growth giving rise to new players who are changing the field yet again (looking at you Xano).
Here I’ll review some of the things to consider when choosing which BaaS to use for your next mobile application. At the end I'll compare some of the options which are compatible with Draftbit. Let’s dig in.
Most modern apps have a general set of requirements when it comes to a backend service or platform. You need somewhere to keep and interact with your data at the very least. You’ll also probably want somewhere to store your images and other files. If your app will have users with accounts and the need to restrict access to data based on the user, then you’ll need a way to authenticate your users. More advanced apps might need the addition of logical operations, scheduled tasks, and third-party integrations.
Start high-level and define the overall functionality for the features you want your app to eventually include. Will you offer paid subscriptions? Will you need to send emails or push notifications automatically when something happens? What about connecting with external APIs? Or, maybe purge records from a database table or run a calculation at regular intervals?
Once you have a good understanding of your app’s initial requirements, you’ll be better able to evaluate which service or platform aligns best with your needs. Most platforms and services will include the core functionality everyone needs, but beyond that you’ll need to compare your needs with what each option offers.
All backends are definitely not created equal and some are easier to use than others. Often this is relative to your level of technical experience, but not exclusively. Just because you can code doesn’t mean you want to. And, some solutions offer a completely no-code environment, however that doesn’t necessarily translate to ‘ease of use’ for you specifically. Some have a nice UI, but their documentation might be confusing to you, etc. Some use more technical vs ‘friendly’ names and wording. So when it comes to choosing which backend to use for your next app, be sure to consider how easy it is for you to use.
Factor in your technical abilities, the offering’s UI (user interface) and UX (user experience), their documentation, and the level of engagement from their support team. It’s also helpful to check out online communities and groups to see how existing and past users report their experiences.
Most services and products allow you to explore during a trial period, so sign up for all the ones that seem like good candidates and just try them on to see how they feel. Are things labeled clearly and easily understandable? Are you able to find what you’re looking for without hunting around? Is it overall easy to reason about for you? Can you be productive and efficient? Remember, once you choose you’ll likely be staying for a while.
Performance can truly make or break an app. You want your data and images to load quickly for users regardless of where they are located. While there are many variables which go into the overall performance of your app, a few things are always good to consider.
While not strictly the case, it’s generally true that the closer your data is to your user, the faster it is to transfer data. Some solutions will have you pick a single region in which to store your data - such as Eastern U.S. - while others are able to distribute your data to multiple regions making the trip your data takes between your app and the backend much shorter and thereby quicker. If your app is going to be used by people all over the world, rather than just in one country or continent, it might be more important to have your data distributed more broadly.
The way in which the data is stored - data store vs database - is also an important factor in the overall performance of your app. Another general guideline is that the closer your data is to the server running the API layer, the faster read and write speeds will be. Some solutions offer a centralized data store where your data is kept together with data from other apps, although not accessible by them. Others offer a dedicated database which stores only your data. Often a dedicated database will be more performant and also typically makes migrating or archiving your data easier.
Another consideration is the format in which your data is stored. Some will be the more typical relational database, such as MySQL or PostgreSQL, which stores data in rows inside tables much like a spreadsheet. Others offer what’s called NoSQL databases which store the data in a format often identical or similar to JSON (JavaScript Object Notation). Each format has their advantages and disadvantages which are beyond the scope of this post, but it's an important consideration before your work begins. When it comes to performance, how you will organize and interact with the data will play a large part in which format is best for your app.
Finally, the ability to scale up your resources is important to think about. As your app grows in features, data, use, the underlying infrastructure will need to keep up if you don’t want your performance to suffer. Some offerings make it as easy as a button-click to increase your resources while others might need more configuration. Either way, as your app requires more resources, you’ll want the ability to increase them without major disruption.
Depending on the type of app you’re building, you might have additional security and regulatory requirements which need to be considered. For instance, if your app handles personal health information (PHI) you will need to strictly adhere to HIPAA compliance requirements. Others require compatibility with ISO standards or industry-specific regulations which dictate the way in which data must be stored, secured, processed, etc.
If your app has any special requirements like these, be sure to research to make sure that you stay compliant. When in doubt, reach out to them with questions. Sometimes these security measures aren’t advertised but might still be available upon request.
Price is one of the trickiest and yet most important things to think about when choosing your backend. The options have widely varying pricing models and plans. Most charge based on a combination of factors including usage, number of users, amount of data, and others which are bundled into plans. Others have more of an ala carte approach where you pay a separate fee for each service you use.
A lot of it will just come down to your budget and requirements. Compromises almost always have to be made - your job is to determine which ones are most acceptable given your situation. But, I’d say if money is not too much of a concern, then definitely prioritize feature compatibility and performance first.
While I can’t tell you which solution is best for your particular needs, I’ve created a feature matrix below that might help inform your decision. I’ve included some of the more popular and feature-complete solutions which can be used as the backend for your Draftbit app.
Draftbit is a bring-your-own-backend mobile app development platform which means all the ones listed below, and many more, can be used as the backend for your Draftbit app. In fact, almost any backend which provides a REST or GraphQL API is compatible! You can start a 14-day trial and try it out now.
Directus Cloud provides a no-code solution for managing users, data, and assets. It includes a database, object storage, logic flows, and instant APIs among other features. Directus also offers an open source version which connects almost any new or existing database.
Xano is a full-featured, turing-complete, no-code BaaS platform that can serve as the backend for all your client-side apps - web, mobile, IoT. You get a scalable server, PostgreSQL database, API builder, cloud functions, and integrations to name just a few.
Supabase offers a database, authentication, instant APIs, objects storage, cloud functions, and integrations among other things. The open source version can be deployed on your own infrastructure and connected to a new or existing PostgreSQL database.
Bubble provides a front-end web app builder and a backend in one convenient platform. It features many things you’ll need to run your web and mobile app including user management, data and file storage, an API builder, cloud functions, integrations, and a lot more.
Backendless provides a platform which includes many services that are common to web and mobile applications - including a data store, user management, push notifications, object storage, and more.