Considering the two options, you might start asking yourself the following questions: Why are some software houses advocating BaaS? Is it just a fad that will soon be forgotten? Is it easier and cheaper to deliver a functional app with it? And, most importantly, does it actually meet my business objectives better than custom backend?
While some of these are pretty straightforward questions, others seem to be almost too complex and context-dependent to be answered in one way. But don’t worry – for us, “it depends” is only the beginning of an insightful reply. That being said, sit back and enjoy our overview of the pros and cons of choosing either of the two backend solutions.
What is Backend as a Service and when will I benefit from it?
BaaS is a solution that facilitates building web and mobile applications by enabling developers to link their digital product to a cloud-stored backend via application programming interfaces (APIs) and software development kits (SDKs). As such, backend as a service can be considered a go-to solution for the two types of projects:
- MVPs, whereby the priority is to shorten the time to market, cut the development costs, and gather the first user feedback as soon as possible;
- apps that won’t require notable upscaling soon;
- non-critical product for which the modification introduced by BaaS provider will not be a deal-breaker.
According to “Backend-as-a-Service: A Global Strategic Business Report”, the global BaaS market is said to reach a value of $31.6 billion by 2020. Global Industry Analysts, Inc., the report’s provider, attributes this state of events to the ever-growing importance of mobile apps in the creation of the worldwide economy. The solution’s popularity is on an increase for a couple of reasons – let me begin by introducing you to three major ones.
Significant reduction of time to market
Software development is not a task that can be completed overnight. While the exact time needed to launch a product is always project-dependent, we can approximate how long the entire process will take by analyzing some real-life cases. One such study has been conducted by Ask Your Target Market, an online market research company, at the request of Progress. As part of their research, AYTM asked 100 developers how long it would take them to build an MVP-quality native application. As it turns out, backend development alone would span 10 weeks.
Bearing this value in mind, it’s safe to say that the increased speed of development is one of the top advantages of using Backend as a Service. If you find a BaaS that lives up to your expectations, there’s no need for setting up a server or programming the boilerplate code first. In fact, once you connect the ready backend to your frontend, the app is ready for launch. Taking into consideration data presented in the above infographics, going for Backend as a Service hat the potential to reduce the app development time by half.
This is a benefit that you’ll appreciate whether you’re a CTO at a large corporation or a freshly minted startup founder. Choosing BaaS as the former, you’ll get to clone an app as many times as you need to find out how it’s perceived by the target audience and what features are worth investing in. As the latter, you’ll find it not only faster but also cheaper to repeat the trial and error process, thus causing your product to generate revenue sooner than later.
Minimized cost and development effort
To build a functional solution, you need not only enough time but also a significant amount of money. While you can reduce the development expenses by outsourcing IT services, you need to remember that a high-quality code comes at a price, even when it’s written by a team for a lower living cost country.
The average hourly cost of IT services in different European regions. Data source: Yalantis
BaaS addresses this issue in two ways. Firstly, it ensures that you’re not making developers reinvent the wheel. At the end of the day, there's no point in coding elements such as social integration or native notification from scratch if they’re provided by Backend as a Service, is there? Instead, developers can devote their full attention to writing high-quality code accounting for custom modifications.
This brings me to my second argument: if BaaS limits the amount of backend work that needs to be done, it enables you to either downsize the developer team or devote the excess funds to the frontend. Don’t get me wrong: I’m not trying to say that backend is in any way less valuable. However, if you think of it, it’s the frontend code and the design that the users first notice when they start using your app. If your project does not require significant customization on the backend side, maybe it’s worth using a ready solution after all?
Wide range of functionalities
The third major advantage of Backend as a Service is that it frees you from the burden of having to look for ways to integrate your app with third-party services. As some of the most common features offered by BaaS providers we could name user authentication (for increased security), social integration (for easy access to third-party apps such as Facebook or LinkedIn), push notifications, or data storage. However, if you take a glance at any of the major BaaS providers’ offerings, such as CloudKit, Kinvey, or Firebase, you’ll notice that they offer much more in a single bundle.
A summary of Firebase’s offering
Custom backend: saving the day when BaaS fails to deliver
While Backend as a Service is a cost and time-effective solution, it certainly isn’t an ultimate answer to all business needs. If you’re about to build a web or mobile application that:
- uses a unique set of functionalities that are not offered by a single BaaS provider,
- should be supported for a longer time,
- shows considerable potential to keep attracting more users,
you should consider going for custom backend instead. In the remaining part of this article, I’ll show you how building your product’s backend from the ground up deals with situations in which Backend as a Service wouldn’t do and allows you to meet the most specific business objectives.
No vendor lock-in
One the one hand, Backend as a Service is convenient; as it provides you with ready solutions, it takes the developers’ minds off the task of writing unnecessary lines of code. One the other, however, it leaves you one the mercy of the BaaS provider who, at some point, may just decide to shut their service down. You’ve probably heard about some of such causes célèbres – if not, let me briefly refer to the Parse shutdown.
Parse was a Mobile Backend as a Service that had been launched in 2011. Two years later, it was acquired by Facebook which made the solution gain notoriety in the developer community faster than ever before. It shouldn’t come as a surprise then, that the 2016 announcement of Parse’s shutdown came completely out of the blue. Suddenly, dozens of entrepreneurs and organizations were left in the lurch.
This case alone shows that one decision made by the BaaS provider can force you to turn the development strategy upside down, thus having a tremendous impact on your business. In comparison, going for custom backend and building your application on top of a popular, open-source stack such as Python leaves the door open for you to move the development in-house or to an external dev team.
Another argument for custom backend development is that it might be challenging to switch away from a BaaS once it’s in active use, even if the provider allows for data export. At the beginning of your entrepreneurial venture, it’s hard to plan the long-term product development roadmap. As a result, it’s also difficult to select Backend as a Service solution that will work for you in the long run. Once you’re ready to conquer other markets, it might simply turn out that migration from one BaaS to another involves risks such as downtime, errors, lack of support for existing functionalities, or it at best highly time-consuming.
We’ve already established that with custom backend development, you don’t have to worry about vendor lock-in. In practice, it means that you can not only rest easy but also that, if anything goes wrong, you’ll fix the issue in no time. Being the creator and the owner of the code, you know where to look for the source of the problem and how to fix a given bug. With Backend as a Service, it’s a completely different story: if the API documentation isn’t up-to-date, the only debugging options you’re left with are calling support or attempting a hit-or-miss manual verification.
Customization and flexibility
The aim of Backend as a Service platform is to work for many different web and mobile applications. This means that while companies like Firebase offer a wide range of functionalities, they won’t allow you to build a truly unique solution that will make your product stand out from the digital crowd.
In fact, any app that will go beyond the basic CRUD functions will require customization. Just think about an online store. Initially, it may seem like a simple project with no twisted logic added to it. However, if you wish to supplement, let’s say, a platform with a chatbot, customized in-app payment module with subscriptions and views mixing many types of data, you’ll probably need to go beyond the standard BaaS offering.
Greater flexibility of custom backend brings me to another advantage of this solution: scalability. The truth is, BaaS is a competitive market where the pricing models can change suddenly. The cost you have to bear when using Backend as a Service is likely to grow with the increased traffic and there are limited options to negotiate individual pricing with the service’s operator. With custom backend, you’re on the square when it comes to finances – Django t, for instance, is open-sourced and there are no additional fees for using it in your project.
When going for Backend as a Service, you are bound to stick to the API scheme introduced by its provider. Because the price of the BaaS option of your choice is usually structured around the volume of API requests or volume of data transferred, so once you reach the quota limits, you can expect a performance drop to happen.
Custom backend, on the other hand, entails no limitations on the number of database operations. Developers can tailor API to your product’s needs, thus eliminating the problem of the increased number of API calls. The result? Improved response time, performance, and… you guessed it right, the greater control over costs you bear.
So should I choose BaaS or custom backend?
As you might have already guessed when reading this article, the answer is it depends. Both solutions have their pros and cons.
Backend as a Service
+ lowered time to market + sustainability due to owning the codebase + reduced development cost + simplified debugging + many functionalities in one bundle + unlimited customization + scalability + full control over performance and costs - limited functionalities - time-consuming - vendor lock-in - increased development cost - limited number of database operations - performance issues - unpredictable costs - time-consuming debugging
On the face of it, Backend as a Service may seem like a good choice for startups who are on a budget; nonetheless, you needn’t forget that it has some considerable limitations. If you’ll ever need to supplement your app with a non-supported feature, the time and effort needed to code and integrate it with the BaaS solution may significantly outweigh the initial savings. On top of that, the more requests are processed within your app, the slower and more expensive the backend gets.
Custom backend, on the other hand, will let you build a unique and scalable product – it’s also a go-to solution if you prioritize reliability and software development security. While we lean towards this solution, at the end of the day, it’s up to you to choose either BaaS or custom backend development.
Looking for a trusted partner who’ll advise you on the tech solutions best matching your product vision? See why you should consider working with Merixstudio.