In terms of prioritization of new funds for digitalization, investment in digitalization was placed in the top 3 for 8 of 15 industries in 2018 - Gartner
In this new age of digital transformation, we need to get our app to the market as soon as possible. There is so much competition around us. Feature and appeal isn’t all that’s required. You don’t want to release your app, only to find out, your competition beat you to it. And there is also the costs associated with development. Being agile and lean is the key to survival.
I’ll be talking about an exciting concept called Backend as a Service (BaaS) which accelerates the development process. This weird sounding piece of technology is the answer to all your prayers. It essentially aims at automating your backend (more on this later) to give a mega boost to your development efforts.
First, lets go back to the basics and break things down a bit. App development can be divided into two broad steps. The frontend (what users see) and the backend (what users cannot see).
The Front End
This is where the appeal is. This is what will dictate your customer / user experience.
What is it: The front end is the interface with which your end users interact. Traditionally it refers to user interfaces like mobile apps and websites. Today, it is virtually anything the user can touch, feel or see. It does include apps and websites, but also includes IoT devices, voice bots, and a lot more.
Coming back to app development, there are many tools and frameworks out there which can help you build your app real quick. Frameworks like React, Vue and Angular let you build sophisticated web apps. You even have native cross platform development tools like React Native and Flutter which can build apps with beautiful native experiences.
The Hiccup: A front end, without a functional backend isn’t of much value. Imagine an Instagram with only one active user. It’s like being stranded alone in a desert. Or even worse, stuck in a room with no Wi-Fi! Well you get the point - Without a back end there is no “life” in an app.
The Back End
What is it: This is where the magic happens. If you skipped the front end section (which I’m glad you did), go back and read it once to know the difference. Ironically this is the piece which the user is unaware of. Due to this, we don’t really think much about it. This might make sense from some perspective (I’d love to hear which perspective is that!). But avoiding it isn’t very beneficial in the longer run. Specially when your app begins to scale and you are rolling out new features every week.
Importance: A basic interview we conducted revealed that approximately 70% development efforts go into building the back end. That is a lot of time! Choosing the right tech stack is yet another problem. Using the wrong tools for the job can impact performance. This, in business terms, means more costs to keep your app running.
Backend as a Service to the Rescue
We usually ask people a simple question. “What is the least amount of code you can write to build a fully functional backend?”. The answer - No code at all! That’s right! BaaS is the new take on building scalable mobile backends. I’ve also come across some products phrasing it as the “Serverless way to build your apps”. This doesn’t mean that there are no servers. But it does imply that you don’t have to create or “code” your backend in order to make apps. All backend functionality is baked in.
The idea: Provide building blocks like user management, database operations, file storage and other cool stuff which is usually required to build apps. All wrapped around and exposed in a general purpose API that can be consumed directly from your front end. Don’t let this misguide you. You can build most types of apps using these tools. Even highly customised ones.
Another great feature of BaaS is real-time databases. What this essentially means is that your front end can “subscribe” to any changes in the database. This will keep your front end in sync with the backend in real-time. This is an awesome feature to build collaborative kind of apps with relative ease.
The point is, BaaS, and more recently mBaaS (Mobile Backend as a Service), can really help you hit the market super quick. There are many prominent players in this field. I’m going to walk you through some of them I love to help you get started immediately.
“Firebase helps mobile app teams succeed”.
Well, I must say, firebase is true to what it says. It is the most feature rich mBaaS provider out there and has a lot of fan following. You don’t need to worry about infrastructure (where your app actually runs). It ships with its own database, Firestore, which is literally planet scale. In short, it’s future proof.
When to use it:
- Firebase makes a lot of sense when you want to get up and running in a matter of minutes.
- It’s a perfect fit for general purpose apps. The wide variety of products available on firebase can be used to build most of the apps out there.
- You want a free tier hosted offering.
When not to use it:
- Highly transactional apps having a relational data model cannot be built on firebase since firestore is a NoSQL database.
- Firebase will lock you to Google. There is no way around it. If you have an environment already set up, you’ll have to do a complete migration.
- The queries which can be done on firestore are not very flexible as compared to MongoDB (another NoSQL database). This can be very restrictive.
Overall Google Firebase is a great tool to try out. I personally recommend it for getting your projects off the ground super quick. You can sign up for a free account here.
“Instant Realtime GraphQL on Postgres”
Hasura is another great mBaaS tool out there. It uses GraphQL as a query language to communicate with its backend. The best part is that it can be downloaded and run anywhere you like. It may not be as feature rich as Firebase, but it definitely adds a whole new flavour by using Postgres under the hood.
When to use it:
- If your app makes heavy use of transactions and you need complex queries.
- You’re already using postgres. Hasura engine plugs into a live postgres instance right out of the box.
- You already know GraphQL and enjoy using it.
When not to use it:
- You can’t use it for any other database like MySQL or MongoDB.
- GraphQL is a bit overwhelming for new developers. It’s got strong foundations but if you don’t already use it, it will slow you down initially.
- You don’t really want to get into data modelling a relational database or your data is highly unstructured.
Hasura is a great free tool. The idea of GraphQL on postgres is a powerful one. You can quickly get started with it on Heroku here.
“Everything you need to build enterprise scale apps at lightning speeds”.
I must disclose that Space Cloud is our product offering. It is a relatively new kid on the block and aims to combine the benefits of Hasura and Firebase into a single product offering. Like firebase it offers a bunch of modules (we are constantly adding modules) like user management and database operations. Unlike firebase, it can be plugged into any live database. A really exciting feature is the ability to use multiple databases together for maximum flexibility. You can download and use it on any cloud vendor of your choice.
When to use it:
- You want to start quickly keeping complete control over your database and environment.
- You need the flexibility to use multiple databases (both SQL and NoSQL) in the same project.
- You have an existing database already in production.
When not to use:
- You don’t want to manage underlying infrastructure
- You want a community and good documentation to go with the tools you use.
- You want to avoid using a BaaS entirely.
Needless to say, you can get started using Space Cloud completely for free to check the tool out for yourself.
Now you know a new way of building apps. This will help you get started on your next big project quickly. Do try out our tool along with the others. Your feedback is highly appreciated. Leave your comments and don’t forget to share! See you soon!