Backend As A Service: A Beginner's Guide
Tags: backend, baas, firebase
Published: 2023-05-26 03:26:24

After hearing the BaaS or Backend As A Service, the first thing that might come to your mind is "Leave BaaS, what the hack is even a backend?".

So, actually to answer your question & keep you away from the complexities of `What is a backend?`, actually this BaaS thing was developed. But to understand that, let's get a more in-depth look at `What is a Backend?`.

### Backend

Going by the text-book backend is the place where data is processed and sanitised for a particular software. But in reality, it's much more. It contains authentication, payment systems & verification, image uploading, data accessing, etc. In short whenever you login to Google or search for something or maybe post an image on Instagram once you click the action button an HTTP request is sent over to a computer popularly known as cloud computer or cloud server where it processes some data and maybe stores something on the database and sends some data back that is showed to you. That might be an OK message or acknowledgement of something, etc. 


![This is the simplest representation of how a very simple app works](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4dmbtn2h9zyyaeya1ige.png)
This is the simplest representation of how a very simple app architecture works.

### What was the problem?

Building a backend server on your own is quite a tough job because it needs features like authentication, efficient database interaction, and proper sanitised data processing and responses. Now, you can learn it and then implement it but it is always not very feasible especially if you are in a hurry of building a product or maybe you are simply a frontend developer and is much interested in the backend of things.

### What's the solution?

The very simple solution can is if somebody can provide us with a service that would host the backend, databases, data processing, authentication, image buckets, rate limiting, etc that a robust and bulletproof backend should have. And simply the service that provides all these features is called a Backend As A Service (BaaS).

A BaaS can integrate with any type of app like a web app or mobile app & provide you SDKs or APIs to communicate and interact with them.

### Main Features:

- Seamless Integration.
- No proper Backend experience is required.
- Low Cost of maintenance.
- Very Efficient.
- Cross Platform Support.
- A good-looking Admin Panel.

### Benefits:

- Now every frontend devs can be full-stack guys who can integrate the backend right out of the box.
- Companies do not need to hire a dedicated backend dev for small apps or just prototypes.
- Highly cost-efficient as you mostly pay for what you use.
- Also you need not maintain your own infrastructure.
- The code that runs behind these services is highly efficient, reliable and secure.

### Some downsides:

- Not very good for very complex projects where you have a ton of Microservices along with some messaging queues and various databases.
- Some BaaS also have a vendor lock-in system i.e., once you start using it you cannot move out & for complex use cases they can be really expensive. If you wanna know more about vendor lock-in you can comment down below.
- Database relationships like relational queries can be difficult at times.

### Some very popular BaaS:

- Firebase
- AWS Amplify
- Appwrite (Kinda Open Source Source alternative to Firebase but also has a hosted version currently in Beta)
- Supabase
- Pocketbase (Open Source alternative to Firebase written in Golang and powered by SQLite database).

### BONUS:

Appwrite is organising a Hackathon. Visit [here](https://hashnode.com/hackathons/appwrite) to know more. Also, I might bring some tutorials on how to use BaaS in your projects if you ask for them in the comment section.

**If you found something useful make sure to drop a ❤️. And 👋 for now...😃😃**