Tuesday, August 16, 2022
The non-techie guide to backend-as-a-service
If you’re a non-technical founder, the word “backend” is probably one of the murkiest parts of app development. Maybe it conjures up an image of rows of servers in a dark data centre, kept running by developer roles that border on digital sorcery.
Frontend development is easy to understand: it’s the part of an app everyone sees. But the backend is hidden and mysterious. You know how important it is, but how to tackle it in the best way for your product is another matter.
You could do it all yourself – keep a server in your basement and assemble a crack team of developers to build it and handle backend maintenance. You could outsource the development to a firm, and lease a server from a third-party service. Or there’s a third way – Backend-as-a-Service.
What is Backend-as-a-Service?
In a way, the backend of your app is a bit like a car. There’s no denying it’s essential – it’s how you get to work, get the shopping done, take the kids to school. But there’s a huge risk that comes with owning it.
No matter how much care you take of your car, it will eventually break down and you’ll be left with a huge bill to get it running again. It used to be that the only way to guarantee you’d never be left without a car was to a) steal your insurance firm’s temporary replacement model b) drive around with a mechanic in the passenger seat or c) to have a spare car waiting for you back home.
Alternatives have come along: first car leasing and eventually car subscription service models. Instead of forking out to own a car, drivers can now get one each month for a much smaller fee with all of the maintenance handled by someone else. And the best bit is that if the car breaks down, the service provider will take it away to fix it and deliver you a replacement.
That’s effectively what Backend-as-a-Service (BaaS) is. Instead of being responsible for your own data server, you can outsource all those murky, behind the scenes aspects of your app – databases, push notifications, user authentication and so on – to a service provider who manages it all over a cloud-based platform.
There’s no need to procure your own backend hardware or recruit expensive development talent because the burden is taken on by the service provider. And most importantly, you don’t need to worry about your lone server in the basement going down and taking your app with it. Their infrastructure is robust, constantly maintained and updated, and if anything goes wrong from time to time they'll sort it without you needing to lift a finger.
Say goodbye to backend grind
If app backend is known for one thing, it’s gobbling up resources. If you’re a lone developer or an entrepreneur running an app project on a shoestring, those resources aren’t something you can readily sign off.
What BaaS does best is take that heavy technical burden off your shoulders. You don’t have to divert your budget into sourcing DevOps engineers to do manual server provisioning, and your backend becomes a simpler area for your full-stack developers to handle.
Freeing up those resources means you can focus more on the front-end development that users see and engage with. And the more you can do that, the quicker your time to market.
But the advantages of Backend-as-a-Service don’t stop with launch day. When your app’s in the store it can also help keep it secure for your users. All the authentication and user data collected in your app is the responsibility of your backend services provider, and they have both the depth of expertise and robust backend architecture to take full care of security.
Later down the line, it can also help accelerate scaling. If your app explodes to half a million users overnight, you don’t need to go on a mad scramble to reinforce your backend development team. It’s as easy as adjusting your subscription plan, and you get to enjoy watching your business grow without an apocalyptic development sprint.
If you want full control, BaaS might fall short
With all the benefits Backend-as-a-Service offers, it begs one question: why does anyone still bother building their own backend?
The main issue is around flexibility. With a ready-made solution you’re not getting a custom backend shaped specifically around what your product and business needs. That means you need to accept a little compromise in terms of fully controlling every detail of the backend infrastructure.
That said, unless your product needs a backend solution that’s unlike anything on the BaaS market, that compromise is usually something you can live with – especially since you save heaps of money and development time. But sometimes those limitations can hold you back.
For example, not all BaaS service providers let you specify where your app data is stored. If somewhere down the line you want to offer your app to customers in China, their data is required by law to be handled by servers in China itself. And if your Backend-as-a-Service solution can’t offer that, you’re going to be shut out of the Chinese market until you find one that can.
A cloud model with the freedom to move
Sometimes the limitations of Backend-as-a-Service don’t become a problem until later in your product journey. But if you decide later on to bring your backend operations in-house, you might find yourself trapped – aka vendor lock-in.
Not all backend services providers are made equal here. Most of the market-leaders like Firebase don’t offer what’s called an “exit hatch”. In other words, there’s no export button to pull out your database and run it on your own server. It’s done that way to protect their IP, but it means if you start out using BaaS and then switch to doing it yourself, you’ll have to invest in all that backend coding from scratch.
That’s not the case with every BaaS provider though. At Morrow we’re affiliated with Supabase, who offer a lot more flexibility if you need to review your backend management.
Supabase is open-source, so their revenue doesn’t depend on keeping their IP locked up tight – and that means they can offer an exit hatch. If you want to move to a self-hosted backend, you can just hit the export button. You’ll get your database, user passwords and other features all ready to deploy on a server you manage.
If you’re non-technical and don’t have a team of backend developers waiting in the wings, Supabase is your friend. When you export your features they’ll provide you with full instructions on how to run your own version on your servers, and you don’t need to write a line of backend code to make it work.
If you’re a non-technical founder looking to learn more about the road ahead, check out our non-techie guide to mobile app development methods. Or if you’d like to dive into the technical detail, check out these three backend platforms that pair well with React Native.