Firebase leads the backend-as-a-service space, but there are many popular alternatives like AWS amplify, Supabase, Nhost, MongoDB Realm, Appwrite, and Parse. Let's compare the pros and cons of fully-managed cloud services. 

#database #vs #programming 

NEW CHANNEL for advanced tutorials https://www.youtube.com/channel/UC2Xd-TjJByJyK2w1zNwY0zQ

🔗 Resources

- Firebase https://firebase.google.com/docs
- AWS Amplify https://docs.aws.amazon.com/amplify/
- Supabase https://supabase.com/docs
- Nhost https://nhost.io/
- Appwrite https://appwrite.io/
- Realm https://www.mongodb.com/docs/realm
- Firebase in 100 Seconds https://youtu.be/vAoB4VbhRzM
- MongoDB in 100 Seconds https://youtu.be/-bt_y4Loofg


🔥 Get More Content - Upgrade to PRO

Upgrade to Fireship PRO at https://fireship.io/pro
Use code lORhwXd2 for 25% off your first payment. 

🎨 My Editor Settings

- Atom One Dark 
- vscode-icons
- Fira Code Font

🔖 Topics Covered

- Best Firebase alternatives
- Is firebase expensive?
- Is Firebase part of Google Cloud?
- How to build an app in the cloud
- Firebase vs AWS Amplify
- Firebase vs Supabase
2024-02-04T05:20:17.560Z
nova-2
2-general-nova
2024-01-09.29447
30089e05-99d1-4376-b32e-c263170674af
3a85b52f-18e0-42ff-966a-665b5f6bd89b
e024f5183e5b17b1b3ff0605255ffbe3aef9380475c7332719e72fd1f6a11bc9
67875a7f-c9c4-48a0-aa55-5bdb8a91c34a
deprecated
If you follow my channel, you know I'm all about that base, about that base, about that firebase, no sequel.
Because honestly, I'm just too lazy to build a back end that won't get hacked to pieces as soon as it goes live.
I find it much easier to sell my soul to Google in exchange for a real time app with one line of JavaScript.
I'm no Apex Alpha Gigachad building my own back end in Rust just to serve 5 monthly active users.
A back end as a service is an extremely complicated product for a company to offer.
You need to take a bunch back disparate cloud infrastructure pieces like databases and servers, then write SDKs for multiple platforms and multiple languages, then secure and document everything for the lowest common developer.
It's not easy, and for many years, the only game in town was Firebase.
But that's not the case in 2023.
I tried out 5 different Firebase alternatives to find out which BaaS is best, including Amplify, MongoDB Realm, Supabase, Nhost, a app right.
We'll compare popularity, pricing, features, and potential drawbacks of each one of these platforms.
But first, I wanna take a look at Firebase to give you a baseline for comparison.
Its Web SDK gets over a 1000000 downloads per week, but is even more popular on mobile and is used by many popular game studios.
Firebase has a ton of features like analytics, crashlytics, backs performance monitoring and so on.
But the 3 most critical for app developers are user authentication, database, and server side functions.
These infrastructure the back pieces are hosted by Google Cloud Platform.
And what Firebase does is provide SDKs for front end applications like JavaScript, iOS, Android, Flutter, Unity, etcetera, so developers can access them without having to architect, deploy and maintain their own server side code, which either requires a ton of manual labor or 1,000,000,000,000 of dollars to hire engineers to do it for you.
When it comes to pricing, Firebase has a generous free tier, then authentication is always free with the exception of phone and multifactor off, but the Firestore database and cloud functions scale up based on usage.
In some cases, it can be expensive at scale, but it really depends on the location and you should carefully calculate pricing based on your anticipated growth.
Most of my projects grow by a factor of 0 which makes Firebase very affordable.
Now, one of the biggest drawbacks when in Firebase is that you're locked in.
Most notably, Firestore is a proprietary database, which means if you ever wanna use a different database, you'd have the big undertaking of migrating that data somewhere else.
Firebase is just like cocaine.
It feels great to get things done quickly, but trying to come off of it is not very fun.
Cocaine is a hell of a drug.
On Firebase, we can flip a switch for Google authentication, back then implement basic OAuth with a single line of code.
We can then listen to the auth state in real time, then take the user ID to make queries to the database.
Not only is the code incredibly simple, but when data on the server changes, it magically updates the UI.
Basically, you get real time apps for free.
And that brings us to AWS Amplify, which is Amazon's answer to Firebase.
It has a very impressive list of features that include things like analytics, predictions, and notifications that aren't found on many of the other options on this list.
Its primary database is DynamoDB, which I found to be pretty painful to work with in the However, Amplify automatically creates a GraphQL API for your data.
It even has a no code tool to define relationships for your data and it is possible to also connect a relational base to your API.
In addition, you can make your data searchable with Elasticsearch, which is a big missing feature in Firebase.
User authentication is handled by AWS Cognito, which feels a bit more mature than what Firebase offers.
Most importantly, you can create user groups, then control what those user groups have access to in your project.
Like Firebase, pricing is pay as back go, so you'll need to carefully calculate usage to figure out how quickly your money will evaporate.
And you can also expect vendor lock in here if you use proprietary AWS products.
It has SDKs for all the major web and mobile platforms and is really the only one on this list that challenges the popularity of Firebase with about 400,000 weekly downloads.
Now, if we We jump into some code, you'll notice a much different developer experience.
Amplify relies heavily on code generation to create the back end API for your data.
This dumps a bunch of code into your project that you'll have to constantly sync with AWS, but it creates a great developer experience for data fetching because you have a GraphQL schema that provides IntelliSense, but at the same time, you don't need to manually write GraphQL queries.
You get nice simple one liners just like that Firebase SDK.
And that brings us to our next platform Supabase.
It's been around since Y Combinator season 20 and has the core features you would expect like auth, file storage, and serverless functions, but its main distinguishing feature is the database.
It uses the open source Postgres, a relational database.
This provides several advantages.
For 1, it provides a more flexible and industry standard way to back model data.
And 2, you don't have to worry as much about vendor lock in because you can host a Postgres database anywhere.
One drawback though is that there are some missing features like website hosting, which means you'll We also need something like Vercel and Netlify, and its SDKs are really only focused on the web with the exception of tools like React Native, Flutter, and Ionic.
They don't seem to be too focused on the iOS, Android side of things.
It has gotten pretty popular on the web with over 40,000 weekly downloads currently.
When it comes to pricing, there is a free tier, but you're limited to back into projects, and they'll sleep after inactivity.
For a serious project, pricing starts at $25 per month, but it contains enough usage to take you up to a 100,000 monthly active users, then turns into pay as you go after that.
Overall, it's a great deal when you compare it to pricing for relational databases elsewhere.
The real magic of Supabase base though is that it makes relational databases easy to work with.
It gives us a browser based tool to manage our data and integrates nicely with user authentication where where we can implement row level security policies to control who has access to our data, and I found its JavaScript SDK very enjoyable to work with.
It's a lot like the original Firebase SDK where you use dot notation to grab the data you want and then perform operations on it.
What's cool though is that it also supports GraphQL, so you have that option as an alternative.
Postgres also supports things like full text search and can return the count of a table, which annoyingly is not possible in Firebase.
When it comes to real time access to data, you'll have to opt in manually.
It doesn't just work out of the box, but once you do that, you can easily subscribe to it from your front end code with the SDK.
Next on the list, we have n host, the open source Firebase backternative with GraphQL.
This project is built on top of Hasura, a very cool platform I've broken down in the past that can take a relational database and turn it into a GraphQL API.
Pricing is very similar to Supabase, free to play around with, and $25 a month to get serious.
If we look at NPM downloads, it doesn't have a ton of traffic, but Hasura is extremely popular, so that metric doesn't really paint the full picture in this case.
The UI is nice and intuitive and allows you to visualize all your database records here in the browser.
What's Special about Enhost though is that your Postgres database is also a GraphQL API.
That means you can play around with queries and mutations right here in the browser as well.
It's important to point out though that you can't do everything from the end host dashboard.
In some cases, you'll need to access Hasura to do things like back update your database permissions and security rules.
That might feel somewhat awkward, but they do a good job of documenting everything.
Now, let's take a look at some code.
Enhost has first class support for React and provides hooks to perform authentication with a single line of code.
When it comes to database queries, things will get a little more complicated because at that point, you'll be working GraphQL and Apollo client.
These are awesome technologies, but there is a learning curve and the code tends to be a bit more verbose than what you would expect with Firebase.
For example, to fetch items from a database, we first need to go to Hasura and add the table and columns to the schema, then define permissions to allow access to that data.
And we probably also want to go to the GraphQL Explorer to test out the query before we add it to our code.
We can then run it with the useQuery hook provided by ApolloClient.
On one hand, this code feels a bit more robust than Firebase, but there's also more friction if you're just prototyping something quickly.
Ultimately, n host feels like a very close competitor to Supabase.
Base.
But if you're into GraphQL, you'll likely have a preference for the way N host does things.
Next up, we have AppRite, which is another open source back end for web and mobile developers.
It has the same infrastructure pieces as n host and Supabase, but has SDKs for both the web and mobile.
As of today, it's not a commercial product yet, which means you would need to self host it, which can be done with a one click install on DigitalOcean, but they are coming out with a fully managed service called AppRight Cloud in the near future.
It's free and open source, so you don't have to worry about vendor lock in, but paradoxically, free and open source can actually be more expensive because you don't have a cash burning startup willing to lose money on you to pad its growth number as you raise more money in the future.
In terms of popularity, the JavaScript SDK doesn't have a ton of downloads, but the Docker image has over 5,000,000 pools.
Go ahead and pull it to spin up the AppRight dashboard in your browser.
It has an impressive list of authentication methods, but the most interesting thing to me is the database.
It's a NoSQL document database, kind of like MongoDB or Firestore, and I found it very easy to use, but it also felt kind of mysterious to me.
I did some research and found that it's based on MariaDB, which is actually a relational database and a fork of MySQL.
Basically, what they're doing is giving you a NoSQL API back to work with a traditional SQL database.
This is not unheard of and was inspired by previous work from Wix.
If we jump into the code, we'll find a lot of easy one liners for authentication and database management like you'd expect from a platform like this.
One thing it doesn't support though at this point is GraphQL.
In any case, AppRight does feel like a tool with a lot of potential.
And that brings us to the final product on this list, MongoDB Realm.
As you may know, MongoDB is the most popular document oriented database out there, and Realm was a startup that was acquired a few years ago that focused on providing tools for mobile developers.
Today, it can sync data from MongoDB Atlas as to any web or mobile platform.
The JavaScript SDK doesn't have a ton of downloads, but it's highly focused on mobile platforms, so that doesn't paint the whole picture.
Pricing will primarily depend on how you use MongoDB through Atlas, which can either be serverless or dedicated.
Then you have additional pay as you go pricing for compute time on things like serverless functions.
If we go back.
The dashboard will find features like authentication, although it does feel a bit limited compared to other options.
The real power is in the database and the ability to sync it with front end applications.
It's also capable of generating a GraphQL API from your database.
When it comes to accessing data, things feel a little more complex than Firebase base because you'll also need to think about a schema to define Realm objects, which translate MongoDB data into something you can actually use in your application.
End.
Once you have it set up, it does make real time subscriptions very easy to manage, and you can also use GraphQL and Apollo if you prefer.
Overall, I think Realm is a great option, but may feel a little more advanced compared to some of the other options we've looked at, and it's a no brainer if you're already using MongoDB.
Before we wrap up, there's one other platform that I want to mention called Parse.
It's been around since 2013 and was acquired by Facebook and subsequently shut down a few years later.
It's now open source and still actively maintained today, but I just haven't tried it myself.
Ultimately, nothing is perfect and it all comes down to trade offs.
The only thing that matters is that you get your app shipped.
Just marry the best looking one and hope it all works out in the end.
But don't ever get divorced because then you'll be paying alimony and child support to your legacy apps.
And finally, if you wanna see more advanced tutorials about these platforms, subscribe to my brand new channel beyond Fireship.
Thanks for watching and I will see you in the next one.

Speaker 0: If you follow my channel, you know I'm all about that base, about that base, about that firebase, no sequel. Because honestly, I'm just too lazy to build a back end that won't get hacked to pieces as soon as it goes live. I find it much easier to sell my soul to Google in exchange for a real time app with one line of JavaScript. I'm no Apex Alpha Gigachad building my own back end in Rust just to serve 5 monthly active users. A back end as a service is an extremely complicated product for a company to offer.

You need to take a bunch back disparate cloud infrastructure pieces like databases and servers, then write SDKs for multiple platforms and multiple languages, then secure and document everything for the lowest common developer. It's not easy, and for many years, the only game in town was Firebase. But that's not the case in 2023. I tried out 5 different Firebase alternatives to find out which BaaS is best, including Amplify, MongoDB Realm, Supabase, Nhost, a app right. We'll compare popularity, pricing, features, and potential drawbacks of each one of these platforms.

But first, I wanna take a look at Firebase to give you a baseline for comparison. Its Web SDK gets over a 1000000 downloads per week, but is even more popular on mobile and is used by many popular game studios. Firebase has a ton of features like analytics, crashlytics, backs performance monitoring and so on. But the 3 most critical for app developers are user authentication, database, and server side functions. These infrastructure the back pieces are hosted by Google Cloud Platform.

And what Firebase does is provide SDKs for front end applications like JavaScript, iOS, Android, Flutter, Unity, etcetera, so developers can access them without having to architect, deploy and maintain their own server side code, which either requires a ton of manual labor or 1,000,000,000,000 of dollars to hire engineers to do it for you. When it comes to pricing, Firebase has a generous free tier, then authentication is always free with the exception of phone and multifactor off, but the Firestore database and cloud functions scale up based on usage. In some cases, it can be expensive at scale, but it really depends on the location and you should carefully calculate pricing based on your anticipated growth. Most of my projects grow by a factor of 0 which makes Firebase very affordable. Now, one of the biggest drawbacks when in Firebase is that you're locked in.

Most notably, Firestore is a proprietary database, which means if you ever wanna use a different database, you'd have the big undertaking of migrating that data somewhere else. Firebase is just like cocaine. It feels great to get things done quickly, but trying to come off of it is not very fun. Cocaine is a hell of a drug. On Firebase, we can flip a switch for Google authentication, back then implement basic OAuth with a single line of code.

We can then listen to the auth state in real time, then take the user ID to make queries to the database. Not only is the code incredibly simple, but when data on the server changes, it magically updates the UI. Basically, you get real time apps for free. And that brings us to AWS Amplify, which is Amazon's answer to Firebase. It has a very impressive list of features that include things like analytics, predictions, and notifications that aren't found on many of the other options on this list.

Its primary database is DynamoDB, which I found to be pretty painful to work with in the However, Amplify automatically creates a GraphQL API for your data. It even has a no code tool to define relationships for your data and it is possible to also connect a relational base to your API. In addition, you can make your data searchable with Elasticsearch, which is a big missing feature in Firebase. User authentication is handled by AWS Cognito, which feels a bit more mature than what Firebase offers. Most importantly, you can create user groups, then control what those user groups have access to in your project.

Like Firebase, pricing is pay as back go, so you'll need to carefully calculate usage to figure out how quickly your money will evaporate. And you can also expect vendor lock in here if you use proprietary AWS products. It has SDKs for all the major web and mobile platforms and is really the only one on this list that challenges the popularity of Firebase with about 400,000 weekly downloads. Now, if we We jump into some code, you'll notice a much different developer experience. Amplify relies heavily on code generation to create the back end API for your data.

This dumps a bunch of code into your project that you'll have to constantly sync with AWS, but it creates a great developer experience for data fetching because you have a GraphQL schema that provides IntelliSense, but at the same time, you don't need to manually write GraphQL queries. You get nice simple one liners just like that Firebase SDK. And that brings us to our next platform Supabase. It's been around since Y Combinator season 20 and has the core features you would expect like auth, file storage, and serverless functions, but its main distinguishing feature is the database. It uses the open source Postgres, a relational database.

This provides several advantages. For 1, it provides a more flexible and industry standard way to back model data. And 2, you don't have to worry as much about vendor lock in because you can host a Postgres database anywhere. One drawback though is that there are some missing features like website hosting, which means you'll We also need something like Vercel and Netlify, and its SDKs are really only focused on the web with the exception of tools like React Native, Flutter, and Ionic. They don't seem to be too focused on the iOS, Android side of things.

It has gotten pretty popular on the web with over 40,000 weekly downloads currently. When it comes to pricing, there is a free tier, but you're limited to back into projects, and they'll sleep after inactivity. For a serious project, pricing starts at $25 per month, but it contains enough usage to take you up to a 100,000 monthly active users, then turns into pay as you go after that. Overall, it's a great deal when you compare it to pricing for relational databases elsewhere. The real magic of Supabase base though is that it makes relational databases easy to work with.

It gives us a browser based tool to manage our data and integrates nicely with user authentication where where we can implement row level security policies to control who has access to our data, and I found its JavaScript SDK very enjoyable to work with. It's a lot like the original Firebase SDK where you use dot notation to grab the data you want and then perform operations on it. What's cool though is that it also supports GraphQL, so you have that option as an alternative. Postgres also supports things like full text search and can return the count of a table, which annoyingly is not possible in Firebase. When it comes to real time access to data, you'll have to opt in manually.

It doesn't just work out of the box, but once you do that, you can easily subscribe to it from your front end code with the SDK. Next on the list, we have n host, the open source Firebase backternative with GraphQL. This project is built on top of Hasura, a very cool platform I've broken down in the past that can take a relational database and turn it into a GraphQL API. Pricing is very similar to Supabase, free to play around with, and $25 a month to get serious. If we look at NPM downloads, it doesn't have a ton of traffic, but Hasura is extremely popular, so that metric doesn't really paint the full picture in this case.

The UI is nice and intuitive and allows you to visualize all your database records here in the browser. What's Special about Enhost though is that your Postgres database is also a GraphQL API. That means you can play around with queries and mutations right here in the browser as well. It's important to point out though that you can't do everything from the end host dashboard. In some cases, you'll need to access Hasura to do things like back update your database permissions and security rules.

That might feel somewhat awkward, but they do a good job of documenting everything. Now, let's take a look at some code. Enhost has first class support for React and provides hooks to perform authentication with a single line of code. When it comes to database queries, things will get a little more complicated because at that point, you'll be working GraphQL and Apollo client. These are awesome technologies, but there is a learning curve and the code tends to be a bit more verbose than what you would expect with Firebase.

For example, to fetch items from a database, we first need to go to Hasura and add the table and columns to the schema, then define permissions to allow access to that data. And we probably also want to go to the GraphQL Explorer to test out the query before we add it to our code. We can then run it with the useQuery hook provided by ApolloClient. On one hand, this code feels a bit more robust than Firebase, but there's also more friction if you're just prototyping something quickly. Ultimately, n host feels like a very close competitor to Supabase.

Base. But if you're into GraphQL, you'll likely have a preference for the way N host does things. Next up, we have AppRite, which is another open source back end for web and mobile developers. It has the same infrastructure pieces as n host and Supabase, but has SDKs for both the web and mobile. As of today, it's not a commercial product yet, which means you would need to self host it, which can be done with a one click install on DigitalOcean, but they are coming out with a fully managed service called AppRight Cloud in the near future.

It's free and open source, so you don't have to worry about vendor lock in, but paradoxically, free and open source can actually be more expensive because you don't have a cash burning startup willing to lose money on you to pad its growth number as you raise more money in the future. In terms of popularity, the JavaScript SDK doesn't have a ton of downloads, but the Docker image has over 5,000,000 pools. Go ahead and pull it to spin up the AppRight dashboard in your browser. It has an impressive list of authentication methods, but the most interesting thing to me is the database. It's a NoSQL document database, kind of like MongoDB or Firestore, and I found it very easy to use, but it also felt kind of mysterious to me.

I did some research and found that it's based on MariaDB, which is actually a relational database and a fork of MySQL. Basically, what they're doing is giving you a NoSQL API back to work with a traditional SQL database. This is not unheard of and was inspired by previous work from Wix. If we jump into the code, we'll find a lot of easy one liners for authentication and database management like you'd expect from a platform like this. One thing it doesn't support though at this point is GraphQL.

In any case, AppRight does feel like a tool with a lot of potential. And that brings us to the final product on this list, MongoDB Realm. As you may know, MongoDB is the most popular document oriented database out there, and Realm was a startup that was acquired a few years ago that focused on providing tools for mobile developers. Today, it can sync data from MongoDB Atlas as to any web or mobile platform. The JavaScript SDK doesn't have a ton of downloads, but it's highly focused on mobile platforms, so that doesn't paint the whole picture.

Pricing will primarily depend on how you use MongoDB through Atlas, which can either be serverless or dedicated. Then you have additional pay as you go pricing for compute time on things like serverless functions. If we go back. The dashboard will find features like authentication, although it does feel a bit limited compared to other options. The real power is in the database and the ability to sync it with front end applications.

It's also capable of generating a GraphQL API from your database. When it comes to accessing data, things feel a little more complex than Firebase base because you'll also need to think about a schema to define Realm objects, which translate MongoDB data into something you can actually use in your application. End. Once you have it set up, it does make real time subscriptions very easy to manage, and you can also use GraphQL and Apollo if you prefer. Overall, I think Realm is a great option, but may feel a little more advanced compared to some of the other options we've looked at, and it's a no brainer if you're already using MongoDB.

Before we wrap up, there's one other platform that I want to mention called Parse. It's been around since 2013 and was acquired by Facebook and subsequently shut down a few years later. It's now open source and still actively maintained today, but I just haven't tried it myself. Ultimately, nothing is perfect and it all comes down to trade offs. The only thing that matters is that you get your app shipped.

Just marry the best looking one and hope it all works out in the end. But don't ever get divorced because then you'll be paying alimony and child support to your legacy apps. And finally, if you wanna see more advanced tutorials about these platforms, subscribe to my brand new channel beyond Fireship. Thanks for watching and I will see you in the next one.
If you follow my channel, you know I'm all about that base, about that base, about that firebase, no sequel. Because honestly, I'm just too lazy to build a back end that won't get hacked to pieces as soon as it goes live.
I find it much easier to sell my soul to Google in exchange for a real time app with one line of JavaScript. I'm no Apex Alpha Gigachad building my own back end in Rust just to serve 5 monthly active users. A back end as a service is an extremely complicated product for a company to offer. You need to take a bunch back disparate cloud infrastructure pieces like databases and servers, then write SDKs for multiple platforms and multiple languages, then secure and document everything for the lowest common developer. It's not easy, and for many years, the only game in town was Firebase. But that's not the case in 2023. I tried out 5 different Firebase alternatives to find out which BaaS is best, including Amplify, MongoDB Realm, Supabase, Nhost, a app right. We'll compare popularity, pricing, features, and potential drawbacks of each one of these platforms. But first, I wanna take a look at Firebase to give you a baseline for comparison. Its Web SDK gets over a 1000000 downloads per week, but is even more popular on mobile and is used by many popular game studios.
google
internet
games
databases
streaming
Firebase has a ton of features like analytics, crashlytics, backs performance monitoring and so on. But the 3 most critical for app developers are user authentication, database, and server side functions.
These infrastructure the back pieces are hosted by Google Cloud Platform. And what Firebase does is provide SDKs for front end applications like JavaScript, iOS, Android, Flutter, Unity, etcetera, so developers can access them without having to architect, deploy and maintain their own server side code, which either requires a ton of manual labor or 1,000,000,000,000 of dollars to hire engineers to do it for you.
architecture
When it comes to pricing, Firebase has a generous free tier, then authentication is always free with the exception of phone and multifactor off, but the Firestore database and cloud functions scale up based on usage. In some cases, it can be expensive at scale, but it really depends on the location and you should carefully calculate pricing based on your anticipated growth.
Most of my projects grow by a factor of 0 which makes Firebase very affordable. Now, one of the biggest drawbacks when in Firebase is that you're locked in. Most notably, Firestore is a proprietary database, which means if you ever wanna use a different database, you'd have the big undertaking of migrating that data somewhere else. Firebase is just like cocaine. It feels great to get things done quickly, but trying to come off of it is not very fun. Cocaine is a hell of a drug. On Firebase, we can flip a switch for Google authentication, back then implement basic OAuth with a single line of code.
databases
drugs
recreational drugs
We can then listen to the auth state in real time, then take the user ID to make queries to the database.
Not only is the code incredibly simple, but when data on the server changes, it magically updates the UI. Basically, you get real time apps for free. And that brings us to AWS Amplify, which is Amazon's answer to Firebase. It has a very impressive list of features that include things like analytics, predictions, and notifications that aren't found on many of the other options on this list. Its primary database is DynamoDB, which I found to be pretty painful to work with in the However, Amplify automatically creates a GraphQL API for your data. It even has a no code tool to define relationships for your data and it is possible to also connect a relational base to your API.
databases
data management
amazon
data
software
In addition, you can make your data searchable with Elasticsearch, which is a big missing feature in Firebase. User authentication is handled by AWS Cognito, which feels a bit more mature than what Firebase offers. Most importantly, you can create user groups, then control what those user groups have access to in your project. Like Firebase, pricing is pay as back go, so you'll need to carefully calculate usage to figure out how quickly your money will evaporate.
And you can also expect vendor lock in here if you use proprietary AWS products. It has SDKs for all the major web and mobile platforms and is really the only one on this list that challenges the popularity of Firebase with about 400,000 weekly downloads. Now, if we We jump into some code, you'll notice a much different developer experience. Amplify relies heavily on code generation to create the back end API for your data. This dumps a bunch of code into your project that you'll have to constantly sync with AWS, but it creates a great developer experience for data fetching because you have a GraphQL schema that provides IntelliSense, but at the same time, you don't need to manually write GraphQL queries. You get nice simple one liners just like that Firebase SDK.
databases
programming
data management
amazon
software development
internet
And that brings us to our next platform Supabase. It's been around since Y Combinator season 20 and has the core features you would expect like auth, file storage, and serverless functions, but its main distinguishing feature is the database.
It uses the open source Postgres, a relational database. This provides several advantages. For 1, it provides a more flexible and industry standard way to back model data. And 2, you don't have to worry as much about vendor lock in because you can host a Postgres database anywhere. One drawback though is that there are some missing features like website hosting, which means you'll We also need something like Vercel and Netlify, and its SDKs are really only focused on the web with the exception of tools like React Native, Flutter, and Ionic.
databases
customer support
They don't seem to be too focused on the iOS, Android side of things. It has gotten pretty popular on the web with over 40,000 weekly downloads currently.
When it comes to pricing, there is a free tier, but you're limited to back into projects, and they'll sleep after inactivity. For a serious project, pricing starts at $25 per month, but it contains enough usage to take you up to a 100,000 monthly active users, then turns into pay as you go after that. Overall, it's a great deal when you compare it to pricing for relational databases elsewhere. The real magic of Supabase base though is that it makes relational databases easy to work with. It gives us a browser based tool to manage our data and integrates nicely with user authentication where where we can implement row level security policies to control who has access to our data, and I found its JavaScript SDK very enjoyable to work with. It's a lot like the original Firebase SDK where you use dot notation to grab the data you want and then perform operations on it.
databases
billing
security
What's cool though is that it also supports GraphQL, so you have that option as an alternative. Postgres also supports things like full text search and can return the count of a table, which annoyingly is not possible in Firebase.
When it comes to real time access to data, you'll have to opt in manually. It doesn't just work out of the box, but once you do that, you can easily subscribe to it from your front end code with the SDK. Next on the list, we have n host, the open source Firebase backternative with GraphQL.
databases
data management
This project is built on top of Hasura, a very cool platform I've broken down in the past that can take a relational database and turn it into a GraphQL API. Pricing is very similar to Supabase, free to play around with, and $25 a month to get serious. If we look at NPM downloads, it doesn't have a ton of traffic, but Hasura is extremely popular, so that metric doesn't really paint the full picture in this case.
The UI is nice and intuitive and allows you to visualize all your database records here in the browser. What's Special about Enhost though is that your Postgres database is also a GraphQL API. That means you can play around with queries and mutations right here in the browser as well.
databases
It's important to point out though that you can't do everything from the end host dashboard.
In some cases, you'll need to access Hasura to do things like back update your database permissions and security rules. That might feel somewhat awkward, but they do a good job of documenting everything. Now, let's take a look at some code. Enhost has first class support for React and provides hooks to perform authentication with a single line of code. When it comes to database queries, things will get a little more complicated because at that point, you'll be working GraphQL and Apollo client. These are awesome technologies, but there is a learning curve and the code tends to be a bit more verbose than what you would expect with Firebase. For example, to fetch items from a database, we first need to go to Hasura and add the table and columns to the schema, then define permissions to allow access to that data. And we probably also want to go to the GraphQL Explorer to test out the query before we add it to our code. We can then run it with the useQuery hook provided by ApolloClient. On one hand, this code feels a bit more robust than Firebase, but there's also more friction if you're just prototyping something quickly.
databases
security
data management
programming
Ultimately, n host feels like a very close competitor to Supabase.
Base. But if you're into GraphQL, you'll likely have a preference for the way N host does things. Next up, we have AppRite, which is another open source back end for web and mobile developers. It has the same infrastructure pieces as n host and Supabase, but has SDKs for both the web and mobile. As of today, it's not a commercial product yet, which means you would need to self host it, which can be done with a one click install on DigitalOcean, but they are coming out with a fully managed service called AppRight Cloud in the near future.
networking
internet
databases
data management
It's free and open source, so you don't have to worry about vendor lock in, but paradoxically, free and open source can actually be more expensive because you don't have a cash burning startup willing to lose money on you to pad its growth number as you raise more money in the future. In terms of popularity, the JavaScript SDK doesn't have a ton of downloads, but the Docker image has over 5,000,000 pools. Go ahead and pull it to spin up the AppRight dashboard in your browser.
It has an impressive list of authentication methods, but the most interesting thing to me is the database. It's a NoSQL document database, kind of like MongoDB or Firestore, and I found it very easy to use, but it also felt kind of mysterious to me. I did some research and found that it's based on MariaDB, which is actually a relational database and a fork of MySQL. Basically, what they're doing is giving you a NoSQL API back to work with a traditional SQL database. This is not unheard of and was inspired by previous work from Wix. If we jump into the code, we'll find a lot of easy one liners for authentication and database management like you'd expect from a platform like this. One thing it doesn't support though at this point is GraphQL. In any case, AppRight does feel like a tool with a lot of potential. And that brings us to the final product on this list, MongoDB Realm. As you may know, MongoDB is the most popular document oriented database out there, and Realm was a startup that was acquired a few years ago that focused on providing tools for mobile developers. Today, it can sync data from MongoDB Atlas as to any web or mobile platform.
databases
data management
The JavaScript SDK doesn't have a ton of downloads, but it's highly focused on mobile platforms, so that doesn't paint the whole picture. Pricing will primarily depend on how you use MongoDB through Atlas, which can either be serverless or dedicated. Then you have additional pay as you go pricing for compute time on things like serverless functions.
If we go back. The dashboard will find features like authentication, although it does feel a bit limited compared to other options. The real power is in the database and the ability to sync it with front end applications. It's also capable of generating a GraphQL API from your database. When it comes to accessing data, things feel a little more complex than Firebase base because you'll also need to think about a schema to define Realm objects, which translate MongoDB data into something you can actually use in your application.
databases
End. Once you have it set up, it does make real time subscriptions very easy to manage, and you can also use GraphQL and Apollo if you prefer. Overall, I think Realm is a great option, but may feel a little more advanced compared to some of the other options we've looked at, and it's a no brainer if you're already using MongoDB. Before we wrap up, there's one other platform that I want to mention called Parse. It's been around since 2013 and was acquired by Facebook and subsequently shut down a few years later. It's now open source and still actively maintained today, but I just haven't tried it myself. Ultimately, nothing is perfect and it all comes down to trade offs.
The only thing that matters is that you get your app shipped. Just marry the best looking one and hope it all works out in the end. But don't ever get divorced because then you'll be paying alimony and child support to your legacy apps. And finally, if you wanna see more advanced tutorials about these platforms, subscribe to my brand new channel beyond Fireship.
amazon
Thanks for watching and I will see you in the next one.
If you follow my channel, you know I'm all about that base, about that base, about that firebase, no sequel. Because honestly, I'm just too lazy to build a back end that won't get hacked to pieces as soon as it goes live. I find it much easier to sell my soul to Google in exchange for a real time app with one line of JavaScript. I'm no Apex Alpha Gigachad building my own back end in Rust just to serve 5 monthly active users. A back end as a service is an extremely complicated product for a company to offer. You need to take a bunch back disparate cloud infrastructure pieces like databases and servers, then write SDKs for multiple platforms and multiple languages, then secure and document everything for the lowest common developer. It's not easy, and for many years, the only game in town was Firebase. But that's not the case in 2023. I tried out 5 different Firebase alternatives to find out which BaaS is best, including Amplify, MongoDB Realm, Supabase, Nhost, a app right. We'll compare popularity, pricing, features, and potential drawbacks of each one of these platforms. But first, I wanna take a look at Firebase to give you a baseline for comparison. Its Web SDK gets over a 1000000 downloads per week, but is even more popular on mobile and is used by many popular game studios. Firebase has a ton of features like analytics, crashlytics, backs performance monitoring and so on. But the 3 most critical for app developers are user authentication, database, and server side functions. These infrastructure the back pieces are hosted by Google Cloud Platform. And what Firebase does is provide SDKs for front end applications like JavaScript, iOS, Android, Flutter, Unity, etcetera, so developers can access them without having to architect, deploy and maintain their own server side code, which either requires a ton of manual labor or 1,000,000,000,000 of dollars to hire engineers to do it for you. When it comes to pricing, Firebase has a generous free tier, then authentication is always free with the exception of phone and multifactor off, but the Firestore database and cloud functions scale up based on usage. In some cases, it can be expensive at scale, but it really depends on the location and you should carefully calculate pricing based on your anticipated growth. Most of my projects grow by a factor of 0 which makes Firebase very affordable. Now, one of the biggest drawbacks when in Firebase is that you're locked in. Most notably, Firestore is a proprietary database, which means if you ever wanna use a different database, you'd have the big undertaking of migrating that data somewhere else. Firebase is just like cocaine. It feels great to get things done quickly, but trying to come off of it is not very fun. Cocaine is a hell of a drug. On Firebase, we can flip a switch for Google authentication, back then implement basic OAuth with a single line of code. We can then listen to the auth state in real time, then take the user ID to make queries to the database. Not only is the code incredibly simple, but when data on the server changes, it magically updates the UI. Basically, you get real time apps for free. And that brings us to AWS Amplify, which is Amazon's answer to Firebase. It has a very impressive list of features that include things like analytics, predictions, and notifications that aren't found on many of the other options on this list. Its primary database is DynamoDB, which I found to be pretty painful to work with in the However, Amplify automatically creates a GraphQL API for your data. It even has a no code tool to define relationships for your data and it is possible to also connect a relational base to your API. In addition, you can make your data searchable with Elasticsearch, which is a big missing feature in Firebase. User authentication is handled by AWS Cognito, which feels a bit more mature than what Firebase offers. Most importantly, you can create user groups, then control what those user groups have access to in your project. Like Firebase, pricing is pay as back go, so you'll need to carefully calculate usage to figure out how quickly your money will evaporate. And you can also expect vendor lock in here if you use proprietary AWS products. It has SDKs for all the major web and mobile platforms and is really the only one on this list that challenges the popularity of Firebase with about 400,000 weekly downloads. Now, if we We jump into some code, you'll notice a much different developer experience. Amplify relies heavily on code generation to create the back end API for your data. This dumps a bunch of code into your project that you'll have to constantly sync with AWS, but it creates a great developer experience for data fetching because you have a GraphQL schema that provides IntelliSense, but at the same time, you don't need to manually write GraphQL queries. You get nice simple one liners just like that Firebase SDK. And that brings us to our next platform Supabase. It's been around since Y Combinator season 20 and has the core features you would expect like auth, file storage, and serverless functions, but its main distinguishing feature is the database. It uses the open source Postgres, a relational database. This provides several advantages. For 1, it provides a more flexible and industry standard way to back model data. And 2, you don't have to worry as much about vendor lock in because you can host a Postgres database anywhere. One drawback though is that there are some missing features like website hosting, which means you'll We also need something like Vercel and Netlify, and its SDKs are really only focused on the web with the exception of tools like React Native, Flutter, and Ionic. They don't seem to be too focused on the iOS, Android side of things. It has gotten pretty popular on the web with over 40,000 weekly downloads currently. When it comes to pricing, there is a free tier, but you're limited to back into projects, and they'll sleep after inactivity. For a serious project, pricing starts at $25 per month, but it contains enough usage to take you up to a 100,000 monthly active users, then turns into pay as you go after that. Overall, it's a great deal when you compare it to pricing for relational databases elsewhere. The real magic of Supabase base though is that it makes relational databases easy to work with. It gives us a browser based tool to manage our data and integrates nicely with user authentication where where we can implement row level security policies to control who has access to our data, and I found its JavaScript SDK very enjoyable to work with. It's a lot like the original Firebase SDK where you use dot notation to grab the data you want and then perform operations on it. What's cool though is that it also supports GraphQL, so you have that option as an alternative. Postgres also supports things like full text search and can return the count of a table, which annoyingly is not possible in Firebase. When it comes to real time access to data, you'll have to opt in manually. It doesn't just work out of the box, but once you do that, you can easily subscribe to it from your front end code with the SDK. Next on the list, we have n host, the open source Firebase backternative with GraphQL. This project is built on top of Hasura, a very cool platform I've broken down in the past that can take a relational database and turn it into a GraphQL API. Pricing is very similar to Supabase, free to play around with, and $25 a month to get serious. If we look at NPM downloads, it doesn't have a ton of traffic, but Hasura is extremely popular, so that metric doesn't really paint the full picture in this case. The UI is nice and intuitive and allows you to visualize all your database records here in the browser. What's Special about Enhost though is that your Postgres database is also a GraphQL API. That means you can play around with queries and mutations right here in the browser as well. It's important to point out though that you can't do everything from the end host dashboard. In some cases, you'll need to access Hasura to do things like back update your database permissions and security rules. That might feel somewhat awkward, but they do a good job of documenting everything. Now, let's take a look at some code. Enhost has first class support for React and provides hooks to perform authentication with a single line of code. When it comes to database queries, things will get a little more complicated because at that point, you'll be working GraphQL and Apollo client. These are awesome technologies, but there is a learning curve and the code tends to be a bit more verbose than what you would expect with Firebase. For example, to fetch items from a database, we first need to go to Hasura and add the table and columns to the schema, then define permissions to allow access to that data. And we probably also want to go to the GraphQL Explorer to test out the query before we add it to our code. We can then run it with the useQuery hook provided by ApolloClient. On one hand, this code feels a bit more robust than Firebase, but there's also more friction if you're just prototyping something quickly. Ultimately, n host feels like a very close competitor to Supabase. Base. But if you're into GraphQL, you'll likely have a preference for the way N host does things. Next up, we have AppRite, which is another open source back end for web and mobile developers. It has the same infrastructure pieces as n host and Supabase, but has SDKs for both the web and mobile. As of today, it's not a commercial product yet, which means you would need to self host it, which can be done with a one click install on DigitalOcean, but they are coming out with a fully managed service called AppRight Cloud in the near future. It's free and open source, so you don't have to worry about vendor lock in, but paradoxically, free and open source can actually be more expensive because you don't have a cash burning startup willing to lose money on you to pad its growth number as you raise more money in the future. In terms of popularity, the JavaScript SDK doesn't have a ton of downloads, but the Docker image has over 5,000,000 pools. Go ahead and pull it to spin up the AppRight dashboard in your browser. It has an impressive list of authentication methods, but the most interesting thing to me is the database. It's a NoSQL document database, kind of like MongoDB or Firestore, and I found it very easy to use, but it also felt kind of mysterious to me. I did some research and found that it's based on MariaDB, which is actually a relational database and a fork of MySQL. Basically, what they're doing is giving you a NoSQL API back to work with a traditional SQL database. This is not unheard of and was inspired by previous work from Wix. If we jump into the code, we'll find a lot of easy one liners for authentication and database management like you'd expect from a platform like this. One thing it doesn't support though at this point is GraphQL. In any case, AppRight does feel like a tool with a lot of potential. And that brings us to the final product on this list, MongoDB Realm. As you may know, MongoDB is the most popular document oriented database out there, and Realm was a startup that was acquired a few years ago that focused on providing tools for mobile developers. Today, it can sync data from MongoDB Atlas as to any web or mobile platform. The JavaScript SDK doesn't have a ton of downloads, but it's highly focused on mobile platforms, so that doesn't paint the whole picture. Pricing will primarily depend on how you use MongoDB through Atlas, which can either be serverless or dedicated. Then you have additional pay as you go pricing for compute time on things like serverless functions. If we go back. The dashboard will find features like authentication, although it does feel a bit limited compared to other options. The real power is in the database and the ability to sync it with front end applications. It's also capable of generating a GraphQL API from your database. When it comes to accessing data, things feel a little more complex than Firebase base because you'll also need to think about a schema to define Realm objects, which translate MongoDB data into something you can actually use in your application. End. Once you have it set up, it does make real time subscriptions very easy to manage, and you can also use GraphQL and Apollo if you prefer. Overall, I think Realm is a great option, but may feel a little more advanced compared to some of the other options we've looked at, and it's a no brainer if you're already using MongoDB. Before we wrap up, there's one other platform that I want to mention called Parse. It's been around since 2013 and was acquired by Facebook and subsequently shut down a few years later. It's now open source and still actively maintained today, but I just haven't tried it myself. Ultimately, nothing is perfect and it all comes down to trade offs. The only thing that matters is that you get your app shipped. Just marry the best looking one and hope it all works out in the end. But don't ever get divorced because then you'll be paying alimony and child support to your legacy apps. And finally, if you wanna see more advanced tutorials about these platforms, subscribe to my brand new channel beyond Fireship. Thanks for watching and I will see you in the next one.
If
if
you
you
follow
follow
my
my
channel,
channel
you
you
know
know
I'm
i'm
all
all
about
about
that
that
base,
base
about
about
that
that
base,
base
about
about
that
that
firebase,
firebase
no
no
sequel.
sequel
Because
because
honestly,
honestly
I'm
i'm
just
just
too
too
lazy
lazy
to
to
build
build
a
a
back
back
end
end
that
that
won't
won't
get
get
hacked
hacked
to
to
pieces
pieces
as
as
soon
soon
as
as
it
it
goes
goes
live.
live
I
i
find
find
it
it
much
much
easier
easier
to
to
sell
sell
my
my
soul
soul
to
to
Google
google
in
in
exchange
exchange
for
for
a
a
real
real
time
time
app
app
with
with
one
one
line
line
of
of
JavaScript.
javascript
I'm
i'm
no
no
Apex
apex
Alpha
alpha
Gigachad
gigachad
building
building
my
my
own
own
back
back
end
end
in
in
Rust
rust
just
just
to
to
serve
serve
5
5
monthly
monthly
active
active
users.
users
A
a
back
back
end
end
as
as
a
a
service
service
is
is
an
an
extremely
extremely
complicated
complicated
product
product
for
for
a
a
company
company
to
to
offer.
offer
You
you
need
need
to
to
take
take
a
a
bunch
bunch
back
back
disparate
disparate
cloud
cloud
infrastructure
infrastructure
pieces
pieces
like
like
databases
databases
and
and
servers,
servers
then
then
write
write
SDKs
sdks
for
for
multiple
multiple
platforms
platforms
and
and
multiple
multiple
languages,
languages
then
then
secure
secure
and
and
document
document
everything
everything
for
for
the
the
lowest
lowest
common
common
developer.
developer
It's
it's
not
not
easy,
easy
and
and
for
for
many
many
years,
years
the
the
only
only
game
game
in
in
town
town
was
was
Firebase.
firebase
But
but
that's
that's
not
not
the
the
case
case
in
in
2023.
2023
I
i
tried
tried
out
out
5
5
different
different
Firebase
firebase
alternatives
alternatives
to
to
find
find
out
out
which
which
BaaS
baas
is
is
best,
best
including
including
Amplify,
amplify
MongoDB
mongodb
Realm,
realm
Supabase,
supabase
Nhost,
nhost
a
a
app
app
right.
right
We'll
we'll
compare
compare
popularity,
popularity
pricing,
pricing
features,
features
and
and
potential
potential
drawbacks
drawbacks
of
of
each
each
one
one
of
of
these
these
platforms.
platforms
But
but
first,
first
I
i
wanna
wanna
take
take
a
a
look
look
at
at
Firebase
firebase
to
to
give
give
you
you
a
a
baseline
baseline
for
for
comparison.
comparison
Its
its
Web
web
SDK
sdk
gets
gets
over
over
a
a
1000000
1000000
downloads
downloads
per
per
week,
week
but
but
is
is
even
even
more
more
popular
popular
on
on
mobile
mobile
and
and
is
is
used
used
by
by
many
many
popular
popular
game
game
studios.
studios
Firebase
firebase
has
has
a
a
ton
ton
of
of
features
features
like
like
analytics,
analytics
crashlytics,
crashlytics
backs
backs
performance
performance
monitoring
monitoring
and
and
so
so
on.
on
But
but
the
the
3
3
most
most
critical
critical
for
for
app
app
developers
developers
are
are
user
user
authentication,
authentication
database,
database
and
and
server
server
side
side
functions.
functions
These
these
infrastructure
infrastructure
the
the
back
back
pieces
pieces
are
are
hosted
hosted
by
by
Google
google
Cloud
cloud
Platform.
platform
And
and
what
what
Firebase
firebase
does
does
is
is
provide
provide
SDKs
sdks
for
for
front
front
end
end
applications
applications
like
like
JavaScript,
javascript
iOS,
ios
Android,
android
Flutter,
flutter
Unity,
unity
etcetera,
etcetera
so
so
developers
developers
can
can
access
access
them
them
without
without
having
having
to
to
architect,
architect
deploy
deploy
and
and
maintain
maintain
their
their
own
own
server
server
side
side
code,
code
which
which
either
either
requires
requires
a
a
ton
ton
of
of
manual
manual
labor
labor
or
or
1,000,000,000,000
1,000,000,000,000
of
of
dollars
dollars
to
to
hire
hire
engineers
engineers
to
to
do
do
it
it
for
for
you.
you
When
when
it
it
comes
comes
to
to
pricing,
pricing
Firebase
firebase
has
has
a
a
generous
generous
free
free
tier,
tier
then
then
authentication
authentication
is
is
always
always
free
free
with
with
the
the
exception
exception
of
of
phone
phone
and
and
multifactor
multifactor
off,
off
but
but
the
the
Firestore
firestore
database
database
and
and
cloud
cloud
functions
functions
scale
scale
up
up
based
based
on
on
usage.
usage
In
in
some
some
cases,
cases
it
it
can
can
be
be
expensive
expensive
at
at
scale,
scale
but
but
it
it
really
really
depends
depends
on
on
the
the
location
location
and
and
you
you
should
should
carefully
carefully
calculate
calculate
pricing
pricing
based
based
on
on
your
your
anticipated
anticipated
growth.
growth
Most
most
of
of
my
my
projects
projects
grow
grow
by
by
a
a
factor
factor
of
of
0
0
which
which
makes
makes
Firebase
firebase
very
very
affordable.
affordable
Now,
now
one
one
of
of
the
the
biggest
biggest
drawbacks
drawbacks
when
when
in
in
Firebase
firebase
is
is
that
that
you're
you're
locked
locked
in.
in
Most
most
notably,
notably
Firestore
firestore
is
is
a
a
proprietary
proprietary
database,
database
which
which
means
means
if
if
you
you
ever
ever
wanna
wanna
use
use
a
a
different
different
database,
database
you'd
you'd
have
have
the
the
big
big
undertaking
undertaking
of
of
migrating
migrating
that
that
data
data
somewhere
somewhere
else.
else
Firebase
firebase
is
is
just
just
like
like
cocaine.
cocaine
It
it
feels
feels
great
great
to
to
get
get
things
things
done
done
quickly,
quickly
but
but
trying
trying
to
to
come
come
off
off
of
of
it
it
is
is
not
not
very
very
fun.
fun
Cocaine
cocaine
is
is
a
a
hell
hell
of
of
a
a
drug.
drug
On
on
Firebase,
firebase
we
we
can
can
flip
flip
a
a
switch
switch
for
for
Google
google
authentication,
authentication
back
back
then
then
implement
implement
basic
basic
OAuth
oauth
with
with
a
a
single
single
line
line
of
of
code.
code
We
we
can
can
then
then
listen
listen
to
to
the
the
auth
auth
state
state
in
in
real
real
time,
time
then
then
take
take
the
the
user
user
ID
id
to
to
make
make
queries
queries
to
to
the
the
database.
database
Not
not
only
only
is
is
the
the
code
code
incredibly
incredibly
simple,
simple
but
but
when
when
data
data
on
on
the
the
server
server
changes,
changes
it
it
magically
magically
updates
updates
the
the
UI.
ui
Basically,
basically
you
you
get
get
real
real
time
time
apps
apps
for
for
free.
free
And
and
that
that
brings
brings
us
us
to
to
AWS
aws
Amplify,
amplify
which
which
is
is
Amazon's
amazon's
answer
answer
to
to
Firebase.
firebase
It
it
has
has
a
a
very
very
impressive
impressive
list
list
of
of
features
features
that
that
include
include
things
things
like
like
analytics,
analytics
predictions,
predictions
and
and
notifications
notifications
that
that
aren't
aren't
found
found
on
on
many
many
of
of
the
the
other
other
options
options
on
on
this
this
list.
list
Its
its
primary
primary
database
database
is
is
DynamoDB,
dynamodb
which
which
I
i
found
found
to
to
be
be
pretty
pretty
painful
painful
to
to
work
work
with
with
in
in
the
the
However,
however
Amplify
amplify
automatically
automatically
creates
creates
a
a
GraphQL
graphql
API
api
for
for
your
your
data.
data
It
it
even
even
has
has
a
a
no
no
code
code
tool
tool
to
to
define
define
relationships
relationships
for
for
your
your
data
data
and
and
it
it
is
is
possible
possible
to
to
also
also
connect
connect
a
a
relational
relational
base
base
to
to
your
your
API.
api
In
in
addition,
addition
you
you
can
can
make
make
your
your
data
data
searchable
searchable
with
with
Elasticsearch,
elasticsearch
which
which
is
is
a
a
big
big
missing
missing
feature
feature
in
in
Firebase.
firebase
User
user
authentication
authentication
is
is
handled
handled
by
by
AWS
aws
Cognito,
cognito
which
which
feels
feels
a
a
bit
bit
more
more
mature
mature
than
than
what
what
Firebase
firebase
offers.
offers
Most
most
importantly,
importantly
you
you
can
can
create
create
user
user
groups,
groups
then
then
control
control
what
what
those
those
user
user
groups
groups
have
have
access
access
to
to
in
in
your
your
project.
project
Like
like
Firebase,
firebase
pricing
pricing
is
is
pay
pay
as
as
back
back
go,
go
so
so
you'll
you'll
need
need
to
to
carefully
carefully
calculate
calculate
usage
usage
to
to
figure
figure
out
out
how
how
quickly
quickly
your
your
money
money
will
will
evaporate.
evaporate
And
and
you
you
can
can
also
also
expect
expect
vendor
vendor
lock
lock
in
in
here
here
if
if
you
you
use
use
proprietary
proprietary
AWS
aws
products.
products
It
it
has
has
SDKs
sdks
for
for
all
all
the
the
major
major
web
web
and
and
mobile
mobile
platforms
platforms
and
and
is
is
really
really
the
the
only
only
one
one
on
on
this
this
list
list
that
that
challenges
challenges
the
the
popularity
popularity
of
of
Firebase
firebase
with
with
about
about
400,000
400,000
weekly
weekly
downloads.
downloads
Now,
now
if
if
we
we
We
we
jump
jump
into
into
some
some
code,
code
you'll
you'll
notice
notice
a
a
much
much
different
different
developer
developer
experience.
experience
Amplify
amplify
relies
relies
heavily
heavily
on
on
code
code
generation
generation
to
to
create
create
the
the
back
back
end
end
API
api
for
for
your
your
data.
data
This
this
dumps
dumps
a
a
bunch
bunch
of
of
code
code
into
into
your
your
project
project
that
that
you'll
you'll
have
have
to
to
constantly
constantly
sync
sync
with
with
AWS,
aws
but
but
it
it
creates
creates
a
a
great
great
developer
developer
experience
experience
for
for
data
data
fetching
fetching
because
because
you
you
have
have
a
a
GraphQL
graphql
schema
schema
that
that
provides
provides
IntelliSense,
intellisense
but
but
at
at
the
the
same
same
time,
time
you
you
don't
don't
need
need
to
to
manually
manually
write
write
GraphQL
graphql
queries.
queries
You
you
get
get
nice
nice
simple
simple
one
one
liners
liners
just
just
like
like
that
that
Firebase
firebase
SDK.
sdk
And
and
that
that
brings
brings
us
us
to
to
our
our
next
next
platform
platform
Supabase.
supabase
It's
it's
been
been
around
around
since
since
Y
y
Combinator
combinator
season
season
20
20
and
and
has
has
the
the
core
core
features
features
you
you
would
would
expect
expect
like
like
auth,
auth
file
file
storage,
storage
and
and
serverless
serverless
functions,
functions
but
but
its
its
main
main
distinguishing
distinguishing
feature
feature
is
is
the
the
database.
database
It
it
uses
uses
the
the
open
open
source
source
Postgres,
postgres
a
a
relational
relational
database.
database
This
this
provides
provides
several
several
advantages.
advantages
For
for
1,
1
it
it
provides
provides
a
a
more
more
flexible
flexible
and
and
industry
industry
standard
standard
way
way
to
to
back
back
model
model
data.
data
And
and
2,
2
you
you
don't
don't
have
have
to
to
worry
worry
as
as
much
much
about
about
vendor
vendor
lock
lock
in
in
because
because
you
you
can
can
host
host
a
a
Postgres
postgres
database
database
anywhere.
anywhere
One
one
drawback
drawback
though
though
is
is
that
that
there
there
are
are
some
some
missing
missing
features
features
like
like
website
website
hosting,
hosting
which
which
means
means
you'll
you'll
We
we
also
also
need
need
something
something
like
like
Vercel
vercel
and
and
Netlify,
netlify
and
and
its
its
SDKs
sdks
are
are
really
really
only
only
focused
focused
on
on
the
the
web
web
with
with
the
the
exception
exception
of
of
tools
tools
like
like
React
react
Native,
native
Flutter,
flutter
and
and
Ionic.
ionic
They
they
don't
don't
seem
seem
to
to
be
be
too
too
focused
focused
on
on
the
the
iOS,
ios
Android
android
side
side
of
of
things.
things
It
it
has
has
gotten
gotten
pretty
pretty
popular
popular
on
on
the
the
web
web
with
with
over
over
40,000
40,000
weekly
weekly
downloads
downloads
currently.
currently
When
when
it
it
comes
comes
to
to
pricing,
pricing
there
there
is
is
a
a
free
free
tier,
tier
but
but
you're
you're
limited
limited
to
to
back
back
into
into
projects,
projects
and
and
they'll
they'll
sleep
sleep
after
after
inactivity.
inactivity
For
for
a
a
serious
serious
project,
project
pricing
pricing
starts
starts
at
at
$25
$25
per
per
month,
month
but
but
it
it
contains
contains
enough
enough
usage
usage
to
to
take
take
you
you
up
up
to
to
a
a
100,000
100,000
monthly
monthly
active
active
users,
users
then
then
turns
turns
into
into
pay
pay
as
as
you
you
go
go
after
after
that.
that
Overall,
overall
it's
it's
a
a
great
great
deal
deal
when
when
you
you
compare
compare
it
it
to
to
pricing
pricing
for
for
relational
relational
databases
databases
elsewhere.
elsewhere
The
the
real
real
magic
magic
of
of
Supabase
supabase
base
base
though
though
is
is
that
that
it
it
makes
makes
relational
relational
databases
databases
easy
easy
to
to
work
work
with.
with
It
it
gives
gives
us
us
a
a
browser
browser
based
based
tool
tool
to
to
manage
manage
our
our
data
data
and
and
integrates
integrates
nicely
nicely
with
with
user
user
authentication
authentication
where
where
where
where
we
we
can
can
implement
implement
row
row
level
level
security
security
policies
policies
to
to
control
control
who
who
has
has
access
access
to
to
our
our
data,
data
and
and
I
i
found
found
its
its
JavaScript
javascript
SDK
sdk
very
very
enjoyable
enjoyable
to
to
work
work
with.
with
It's
it's
a
a
lot
lot
like
like
the
the
original
original
Firebase
firebase
SDK
sdk
where
where
you
you
use
use
dot
dot
notation
notation
to
to
grab
grab
the
the
data
data
you
you
want
want
and
and
then
then
perform
perform
operations
operations
on
on
it.
it
What's
what's
cool
cool
though
though
is
is
that
that
it
it
also
also
supports
supports
GraphQL,
graphql
so
so
you
you
have
have
that
that
option
option
as
as
an
an
alternative.
alternative
Postgres
postgres
also
also
supports
supports
things
things
like
like
full
full
text
text
search
search
and
and
can
can
return
return
the
the
count
count
of
of
a
a
table,
table
which
which
annoyingly
annoyingly
is
is
not
not
possible
possible
in
in
Firebase.
firebase
When
when
it
it
comes
comes
to
to
real
real
time
time
access
access
to
to
data,
data
you'll
you'll
have
have
to
to
opt
opt
in
in
manually.
manually
It
it
doesn't
doesn't
just
just
work
work
out
out
of
of
the
the
box,
box
but
but
once
once
you
you
do
do
that,
that
you
you
can
can
easily
easily
subscribe
subscribe
to
to
it
it
from
from
your
your
front
front
end
end
code
code
with
with
the
the
SDK.
sdk
Next
next
on
on
the
the
list,
list
we
we
have
have
n
n
host,
host
the
the
open
open
source
source
Firebase
firebase
backternative
backternative
with
with
GraphQL.
graphql
This
this
project
project
is
is
built
built
on
on
top
top
of
of
Hasura,
hasura
a
a
very
very
cool
cool
platform
platform
I've
i've
broken
broken
down
down
in
in
the
the
past
past
that
that
can
can
take
take
a
a
relational
relational
database
database
and
and
turn
turn
it
it
into
into
a
a
GraphQL
graphql
API.
api
Pricing
pricing
is
is
very
very
similar
similar
to
to
Supabase,
supabase
free
free
to
to
play
play
around
around
with,
with
and
and
$25
$25
a
a
month
month
to
to
get
get
serious.
serious
If
if
we
we
look
look
at
at
NPM
npm
downloads,
downloads
it
it
doesn't
doesn't
have
have
a
a
ton
ton
of
of
traffic,
traffic
but
but
Hasura
hasura
is
is
extremely
extremely
popular,
popular
so
so
that
that
metric
metric
doesn't
doesn't
really
really
paint
paint
the
the
full
full
picture
picture
in
in
this
this
case.
case
The
the
UI
ui
is
is
nice
nice
and
and
intuitive
intuitive
and
and
allows
allows
you
you
to
to
visualize
visualize
all
all
your
your
database
database
records
records
here
here
in
in
the
the
browser.
browser
What's
what's
Special
special
about
about
Enhost
enhost
though
though
is
is
that
that
your
your
Postgres
postgres
database
database
is
is
also
also
a
a
GraphQL
graphql
API.
api
That
that
means
means
you
you
can
can
play
play
around
around
with
with
queries
queries
and
and
mutations
mutations
right
right
here
here
in
in
the
the
browser
browser
as
as
well.
well
It's
it's
important
important
to
to
point
point
out
out
though
though
that
that
you
you
can't
can't
do
do
everything
everything
from
from
the
the
end
end
host
host
dashboard.
dashboard
In
in
some
some
cases,
cases
you'll
you'll
need
need
to
to
access
access
Hasura
hasura
to
to
do
do
things
things
like
like
back
back
update
update
your
your
database
database
permissions
permissions
and
and
security
security
rules.
rules
That
that
might
might
feel
feel
somewhat
somewhat
awkward,
awkward
but
but
they
they
do
do
a
a
good
good
job
job
of
of
documenting
documenting
everything.
everything
Now,
now
let's
let's
take
take
a
a
look
look
at
at
some
some
code.
code
Enhost
enhost
has
has
first
first
class
class
support
support
for
for
React
react
and
and
provides
provides
hooks
hooks
to
to
perform
perform
authentication
authentication
with
with
a
a
single
single
line
line
of
of
code.
code
When
when
it
it
comes
comes
to
to
database
database
queries,
queries
things
things
will
will
get
get
a
a
little
little
more
more
complicated
complicated
because
because
at
at
that
that
point,
point
you'll
you'll
be
be
working
working
GraphQL
graphql
and
and
Apollo
apollo
client.
client
These
these
are
are
awesome
awesome
technologies,
technologies
but
but
there
there
is
is
a
a
learning
learning
curve
curve
and
and
the
the
code
code
tends
tends
to
to
be
be
a
a
bit
bit
more
more
verbose
verbose
than
than
what
what
you
you
would
would
expect
expect
with
with
Firebase.
firebase
For
for
example,
example
to
to
fetch
fetch
items
items
from
from
a
a
database,
database
we
we
first
first
need
need
to
to
go
go
to
to
Hasura
hasura
and
and
add
add
the
the
table
table
and
and
columns
columns
to
to
the
the
schema,
schema
then
then
define
define
permissions
permissions
to
to
allow
allow
access
access
to
to
that
that
data.
data
And
and
we
we
probably
probably
also
also
want
want
to
to
go
go
to
to
the
the
GraphQL
graphql
Explorer
explorer
to
to
test
test
out
out
the
the
query
query
before
before
we
we
add
add
it
it
to
to
our
our
code.
code
We
we
can
can
then
then
run
run
it
it
with
with
the
the
useQuery
usequery
hook
hook
provided
provided
by
by
ApolloClient.
apolloclient
On
on
one
one
hand,
hand
this
this
code
code
feels
feels
a
a
bit
bit
more
more
robust
robust
than
than
Firebase,
firebase
but
but
there's
there's
also
also
more
more
friction
friction
if
if
you're
you're
just
just
prototyping
prototyping
something
something
quickly.
quickly
Ultimately,
ultimately
n
n
host
host
feels
feels
like
like
a
a
very
very
close
close
competitor
competitor
to
to
Supabase.
supabase
Base.
base
But
but
if
if
you're
you're
into
into
GraphQL,
graphql
you'll
you'll
likely
likely
have
have
a
a
preference
preference
for
for
the
the
way
way
N
n
host
host
does
does
things.
things
Next
next
up,
up
we
we
have
have
AppRite,
apprite
which
which
is
is
another
another
open
open
source
source
back
back
end
end
for
for
web
web
and
and
mobile
mobile
developers.
developers
It
it
has
has
the
the
same
same
infrastructure
infrastructure
pieces
pieces
as
as
n
n
host
host
and
and
Supabase,
supabase
but
but
has
has
SDKs
sdks
for
for
both
both
the
the
web
web
and
and
mobile.
mobile
As
as
of
of
today,
today
it's
it's
not
not
a
a
commercial
commercial
product
product
yet,
yet
which
which
means
means
you
you
would
would
need
need
to
to
self
self
host
host
it,
it
which
which
can
can
be
be
done
done
with
with
a
a
one
one
click
click
install
install
on
on
DigitalOcean,
digitalocean
but
but
they
they
are
are
coming
coming
out
out
with
with
a
a
fully
fully
managed
managed
service
service
called
called
AppRight
appright
Cloud
cloud
in
in
the
the
near
near
future.
future
It's
it's
free
free
and
and
open
open
source,
source
so
so
you
you
don't
don't
have
have
to
to
worry
worry
about
about
vendor
vendor
lock
lock
in,
in
but
but
paradoxically,
paradoxically
free
free
and
and
open
open
source
source
can
can
actually
actually
be
be
more
more
expensive
expensive
because
because
you
you
don't
don't
have
have
a
a
cash
cash
burning
burning
startup
startup
willing
willing
to
to
lose
lose
money
money
on
on
you
you
to
to
pad
pad
its
its
growth
growth
number
number
as
as
you
you
raise
raise
more
more
money
money
in
in
the
the
future.
future
In
in
terms
terms
of
of
popularity,
popularity
the
the
JavaScript
javascript
SDK
sdk
doesn't
doesn't
have
have
a
a
ton
ton
of
of
downloads,
downloads
but
but
the
the
Docker
docker
image
image
has
has
over
over
5,000,000
5,000,000
pools.
pools
Go
go
ahead
ahead
and
and
pull
pull
it
it
to
to
spin
spin
up
up
the
the
AppRight
appright
dashboard
dashboard
in
in
your
your
browser.
browser
It
it
has
has
an
an
impressive
impressive
list
list
of
of
authentication
authentication
methods,
methods
but
but
the
the
most
most
interesting
interesting
thing
thing
to
to
me
me
is
is
the
the
database.
database
It's
it's
a
a
NoSQL
nosql
document
document
database,
database
kind
kind
of
of
like
like
MongoDB
mongodb
or
or
Firestore,
firestore
and
and
I
i
found
found
it
it
very
very
easy
easy
to
to
use,
use
but
but
it
it
also
also
felt
felt
kind
kind
of
of
mysterious
mysterious
to
to
me.
me
I
i
did
did
some
some
research
research
and
and
found
found
that
that
it's
it's
based
based
on
on
MariaDB,
mariadb
which
which
is
is
actually
actually
a
a
relational
relational
database
database
and
and
a
a
fork
fork
of
of
MySQL.
mysql
Basically,
basically
what
what
they're
they're
doing
doing
is
is
giving
giving
you
you
a
a
NoSQL
nosql
API
api
back
back
to
to
work
work
with
with
a
a
traditional
traditional
SQL
sql
database.
database
This
this
is
is
not
not
unheard
unheard
of
of
and
and
was
was
inspired
inspired
by
by
previous
previous
work
work
from
from
Wix.
wix
If
if
we
we
jump
jump
into
into
the
the
code,
code
we'll
we'll
find
find
a
a
lot
lot
of
of
easy
easy
one
one
liners
liners
for
for
authentication
authentication
and
and
database
database
management
management
like
like
you'd
you'd
expect
expect
from
from
a
a
platform
platform
like
like
this.
this
One
one
thing
thing
it
it
doesn't
doesn't
support
support
though
though
at
at
this
this
point
point
is
is
GraphQL.
graphql
In
in
any
any
case,
case
AppRight
appright
does
does
feel
feel
like
like
a
a
tool
tool
with
with
a
a
lot
lot
of
of
potential.
potential
And
and
that
that
brings
brings
us
us
to
to
the
the
final
final
product
product
on
on
this
this
list,
list
MongoDB
mongodb
Realm.
realm
As
as
you
you
may
may
know,
know
MongoDB
mongodb
is
is
the
the
most
most
popular
popular
document
document
oriented
oriented
database
database
out
out
there,
there
and
and
Realm
realm
was
was
a
a
startup
startup
that
that
was
was
acquired
acquired
a
a
few
few
years
years
ago
ago
that
that
focused
focused
on
on
providing
providing
tools
tools
for
for
mobile
mobile
developers.
developers
Today,
today
it
it
can
can
sync
sync
data
data
from
from
MongoDB
mongodb
Atlas
atlas
as
as
to
to
any
any
web
web
or
or
mobile
mobile
platform.
platform
The
the
JavaScript
javascript
SDK
sdk
doesn't
doesn't
have
have
a
a
ton
ton
of
of
downloads,
downloads
but
but
it's
it's
highly
highly
focused
focused
on
on
mobile
mobile
platforms,
platforms
so
so
that
that
doesn't
doesn't
paint
paint
the
the
whole
whole
picture.
picture
Pricing
pricing
will
will
primarily
primarily
depend
depend
on
on
how
how
you
you
use
use
MongoDB
mongodb
through
through
Atlas,
atlas
which
which
can
can
either
either
be
be
serverless
serverless
or
or
dedicated.
dedicated
Then
then
you
you
have
have
additional
additional
pay
pay
as
as
you
you
go
go
pricing
pricing
for
for
compute
compute
time
time
on
on
things
things
like
like
serverless
serverless
functions.
functions
If
if
we
we
go
go
back.
back
The
the
dashboard
dashboard
will
will
find
find
features
features
like
like
authentication,
authentication
although
although
it
it
does
does
feel
feel
a
a
bit
bit
limited
limited
compared
compared
to
to
other
other
options.
options
The
the
real
real
power
power
is
is
in
in
the
the
database
database
and
and
the
the
ability
ability
to
to
sync
sync
it
it
with
with
front
front
end
end
applications.
applications
It's
it's
also
also
capable
capable
of
of
generating
generating
a
a
GraphQL
graphql
API
api
from
from
your
your
database.
database
When
when
it
it
comes
comes
to
to
accessing
accessing
data,
data
things
things
feel
feel
a
a
little
little
more
more
complex
complex
than
than
Firebase
firebase
base
base
because
because
you'll
you'll
also
also
need
need
to
to
think
think
about
about
a
a
schema
schema
to
to
define
define
Realm
realm
objects,
objects
which
which
translate
translate
MongoDB
mongodb
data
data
into
into
something
something
you
you
can
can
actually
actually
use
use
in
in
your
your
application.
application
End.
end
Once
once
you
you
have
have
it
it
set
set
up,
up
it
it
does
does
make
make
real
real
time
time
subscriptions
subscriptions
very
very
easy
easy
to
to
manage,
manage
and
and
you
you
can
can
also
also
use
use
GraphQL
graphql
and
and
Apollo
apollo
if
if
you
you
prefer.
prefer
Overall,
overall
I
i
think
think
Realm
realm
is
is
a
a
great
great
option,
option
but
but
may
may
feel
feel
a
a
little
little
more
more
advanced
advanced
compared
compared
to
to
some
some
of
of
the
the
other
other
options
options
we've
we've
looked
looked
at,
at
and
and
it's
it's
a
a
no
no
brainer
brainer
if
if
you're
you're
already
already
using
using
MongoDB.
mongodb
Before
before
we
we
wrap
wrap
up,
up
there's
there's
one
one
other
other
platform
platform
that
that
I
i
want
want
to
to
mention
mention
called
called
Parse.
parse
It's
it's
been
been
around
around
since
since
2013
2013
and
and
was
was
acquired
acquired
by
by
Facebook
facebook
and
and
subsequently
subsequently
shut
shut
down
down
a
a
few
few
years
years
later.
later
It's
it's
now
now
open
open
source
source
and
and
still
still
actively
actively
maintained
maintained
today,
today
but
but
I
i
just
just
haven't
haven't
tried
tried
it
it
myself.
myself
Ultimately,
ultimately
nothing
nothing
is
is
perfect
perfect
and
and
it
it
all
all
comes
comes
down
down
to
to
trade
trade
offs.
offs
The
the
only
only
thing
thing
that
that
matters
matters
is
is
that
that
you
you
get
get
your
your
app
app
shipped.
shipped
Just
just
marry
marry
the
the
best
best
looking
looking
one
one
and
and
hope
hope
it
it
all
all
works
works
out
out
in
in
the
the
end.
end
But
but
don't
don't
ever
ever
get
get
divorced
divorced
because
because
then
then
you'll
you'll
be
be
paying
paying
alimony
alimony
and
and
child
child
support
support
to
to
your
your
legacy
legacy
apps.
apps
And
and
finally,
finally
if
if
you
you
wanna
wanna
see
see
more
more
advanced
advanced
tutorials
tutorials
about
about
these
these
platforms,
platforms
subscribe
subscribe
to
to
my
my
brand
brand
new
new
channel
channel
beyond
beyond
Fireship.
fireship
Thanks
thanks
for
for
watching
watching
and
and
I
i
will
will
see
see
you
you
in
in
the
the
next
next
one.
one
success
The speakers discuss various popular video games and their features, including transcription and batching data, and the benefits of using Amplify for developer experience and managing data. They also mention the use of N host and Supabase for building a fully-integrated app for web and mobile developers, and the use of MongoDB Realm for document-oriented database for developers. The importance of privacy and security is emphasized, and subscribing to a brand new channel for more tutorials is suggested.
I tried 5 Firebase alternatives
If you follow my channel, you know I'm all about that base, about that base, about that firebase, no sequel. Because honestly, I'm just too lazy to build a back end that won't get hacked to pieces as soon as it goes live. I find it much easier to sell my soul to Google in exchange for a real time app with one line of JavaScript. I'm no Apex Alpha Gigachad building my own back end in Rust just to serve 5 monthly active users. A back end as a service is an extremely complicated product for a company to offer. You need to take a bunch back disparate cloud infrastructure pieces like databases and servers, then write SDKs for multiple platforms and multiple languages, then secure and document everything for the lowest common developer. It's not easy, and for many years, the only game in town was Firebase. But that's not the case in 2023. I tried out 5 different Firebase alternatives to find out which BaaS is best, including Amplify, MongoDB Realm, Supabase, Nhost, a app right. We'll compare popularity, pricing, features, and potential drawbacks of each one of these platforms. But first, I wanna take a look at Firebase to give you a baseline for comparison. Its Web SDK gets over a 1000000 downloads per week, but is even more popular on mobile and is used by many popular game studios. Firebase has a ton of features like analytics, crashlytics, backs performance monitoring and so on. But the 3 most critical for app developers are user authentication, database, and server side functions. These infrastructure the back pieces are hosted by Google Cloud Platform. And what Firebase does is provide SDKs for front end applications like JavaScript, iOS, Android, Flutter, Unity, etcetera, so developers can access them without having to architect, deploy and maintain their own server side code, which either requires a ton of manual labor or 1,000,000,000,000 of dollars to hire engineers to do it for you. When it comes to pricing, Firebase has a generous free tier, then authentication is always free with the exception of phone and multifactor off, but the Firestore database and cloud functions scale up based on usage. In some cases, it can be expensive at scale, but it really depends on the location and you should carefully calculate pricing based on your anticipated growth. Most of my projects grow by a factor of 0 which makes Firebase very affordable. Now, one of the biggest drawbacks when in Firebase is that you're locked in. Most notably, Firestore is a proprietary database, which means if you ever wanna use a different database, you'd have the big undertaking of migrating that data somewhere else. Firebase is just like cocaine. It feels great to get things done quickly, but trying to come off of it is not very fun. Cocaine is a hell of a drug. On Firebase, we can flip a switch for Google authentication, back then implement basic OAuth with a single line of code. We can then listen to the auth state in real time, then take the user ID to make queries to the database. Not only is the code incredibly simple, but when data on the server changes, it magically updates the UI. Basically, you get real time apps for free. And that brings us to AWS Amplify, which is Amazon's answer to Firebase. It has a very impressive list of features that include things like analytics, predictions, and notifications that aren't found on many of the other options on this list. Its primary database is DynamoDB, which I found to be pretty painful to work with in the However, Amplify automatically creates a GraphQL API for your data. It even has a no code tool to define relationships for your data and it is possible to also connect a relational base to your API. In addition, you can make your data searchable with Elasticsearch, which is a big missing feature in Firebase. User authentication is handled by AWS Cognito, which feels a bit more mature than what Firebase offers. Most importantly, you can create user groups, then control what those user groups have access to in your project. Like Firebase, pricing is pay as back go, so you'll need to carefully calculate usage to figure out how quickly your money will evaporate. And you can also expect vendor lock in here if you use proprietary AWS products. It has SDKs for all the major web and mobile platforms and is really the only one on this list that challenges the popularity of Firebase with about 400,000 weekly downloads. Now, if we We jump into some code, you'll notice a much different developer experience. Amplify relies heavily on code generation to create the back end API for your data. This dumps a bunch of code into your project that you'll have to constantly sync with AWS, but it creates a great developer experience for data fetching because you have a GraphQL schema that provides IntelliSense, but at the same time, you don't need to manually write GraphQL queries. You get nice simple one liners just like that Firebase SDK. And that brings us to our next platform Supabase. It's been around since Y Combinator season 20 and has the core features you would expect like auth, file storage, and serverless functions, but its main distinguishing feature is the database. It uses the open source Postgres, a relational database. This provides several advantages. For 1, it provides a more flexible and industry standard way to back model data. And 2, you don't have to worry as much about vendor lock in because you can host a Postgres database anywhere. One drawback though is that there are some missing features like website hosting, which means you'll We also need something like Vercel and Netlify, and its SDKs are really only focused on the web with the exception of tools like React Native, Flutter, and Ionic. They don't seem to be too focused on the iOS, Android side of things. It has gotten pretty popular on the web with over 40,000 weekly downloads currently. When it comes to pricing, there is a free tier, but you're limited to back into projects, and they'll sleep after inactivity. For a serious project, pricing starts at $25 per month, but it contains enough usage to take you up to a 100,000 monthly active users, then turns into pay as you go after that. Overall, it's a great deal when you compare it to pricing for relational databases elsewhere. The real magic of Supabase base though is that it makes relational databases easy to work with. It gives us a browser based tool to manage our data and integrates nicely with user authentication where where we can implement row level security policies to control who has access to our data, and I found its JavaScript SDK very enjoyable to work with. It's a lot like the original Firebase SDK where you use dot notation to grab the data you want and then perform operations on it. What's cool though is that it also supports GraphQL, so you have that option as an alternative. Postgres also supports things like full text search and can return the count of a table, which annoyingly is not possible in Firebase. When it comes to real time access to data, you'll have to opt in manually. It doesn't just work out of the box, but once you do that, you can easily subscribe to it from your front end code with the SDK. Next on the list, we have n host, the open source Firebase backternative with GraphQL. This project is built on top of Hasura, a very cool platform I've broken down in the past that can take a relational database and turn it into a GraphQL API. Pricing is very similar to Supabase, free to play around with, and $25 a month to get serious. If we look at NPM downloads, it doesn't have a ton of traffic, but Hasura is extremely popular, so that metric doesn't really paint the full picture in this case. The UI is nice and intuitive and allows you to visualize all your database records here in the browser. What's Special about Enhost though is that your Postgres database is also a GraphQL API. That means you can play around with queries and mutations right here in the browser as well. It's important to point out though that you can't do everything from the end host dashboard. In some cases, you'll need to access Hasura to do things like back update your database permissions and security rules. That might feel somewhat awkward, but they do a good job of documenting everything. Now, let's take a look at some code. Enhost has first class support for React and provides hooks to perform authentication with a single line of code. When it comes to database queries, things will get a little more complicated because at that point, you'll be working GraphQL and Apollo client. These are awesome technologies, but there is a learning curve and the code tends to be a bit more verbose than what you would expect with Firebase. For example, to fetch items from a database, we first need to go to Hasura and add the table and columns to the schema, then define permissions to allow access to that data. And we probably also want to go to the GraphQL Explorer to test out the query before we add it to our code. We can then run it with the useQuery hook provided by ApolloClient. On one hand, this code feels a bit more robust than Firebase, but there's also more friction if you're just prototyping something quickly. Ultimately, n host feels like a very close competitor to Supabase. Base. But if you're into GraphQL, you'll likely have a preference for the way N host does things. Next up, we have AppRite, which is another open source back end for web and mobile developers. It has the same infrastructure pieces as n host and Supabase, but has SDKs for both the web and mobile. As of today, it's not a commercial product yet, which means you would need to self host it, which can be done with a one click install on DigitalOcean, but they are coming out with a fully managed service called AppRight Cloud in the near future. It's free and open source, so you don't have to worry about vendor lock in, but paradoxically, free and open source can actually be more expensive because you don't have a cash burning startup willing to lose money on you to pad its growth number as you raise more money in the future. In terms of popularity, the JavaScript SDK doesn't have a ton of downloads, but the Docker image has over 5,000,000 pools. Go ahead and pull it to spin up the AppRight dashboard in your browser. It has an impressive list of authentication methods, but the most interesting thing to me is the database. It's a NoSQL document database, kind of like MongoDB or Firestore, and I found it very easy to use, but it also felt kind of mysterious to me. I did some research and found that it's based on MariaDB, which is actually a relational database and a fork of MySQL. Basically, what they're doing is giving you a NoSQL API back to work with a traditional SQL database. This is not unheard of and was inspired by previous work from Wix. If we jump into the code, we'll find a lot of easy one liners for authentication and database management like you'd expect from a platform like this. One thing it doesn't support though at this point is GraphQL. In any case, AppRight does feel like a tool with a lot of potential. And that brings us to the final product on this list, MongoDB Realm. As you may know, MongoDB is the most popular document oriented database out there, and Realm was a startup that was acquired a few years ago that focused on providing tools for mobile developers. Today, it can sync data from MongoDB Atlas as to any web or mobile platform. The JavaScript SDK doesn't have a ton of downloads, but it's highly focused on mobile platforms, so that doesn't paint the whole picture. Pricing will primarily depend on how you use MongoDB through Atlas, which can either be serverless or dedicated. Then you have additional pay as you go pricing for compute time on things like serverless functions. If we go back. The dashboard will find features like authentication, although it does feel a bit limited compared to other options. The real power is in the database and the ability to sync it with front end applications. It's also capable of generating a GraphQL API from your database. When it comes to accessing data, things feel a little more complex than Firebase base because you'll also need to think about a schema to define Realm objects, which translate MongoDB data into something you can actually use in your application. End. Once you have it set up, it does make real time subscriptions very easy to manage, and you can also use GraphQL and Apollo if you prefer. Overall, I think Realm is a great option, but may feel a little more advanced compared to some of the other options we've looked at, and it's a no brainer if you're already using MongoDB. Before we wrap up, there's one other platform that I want to mention called Parse. It's been around since 2013 and was acquired by Facebook and subsequently shut down a few years later. It's now open source and still actively maintained today, but I just haven't tried it myself. Ultimately, nothing is perfect and it all comes down to trade offs. The only thing that matters is that you get your app shipped. Just marry the best looking one and hope it all works out in the end. But don't ever get divorced because then you'll be paying alimony and child support to your legacy apps. And finally, if you wanna see more advanced tutorials about these platforms, subscribe to my brand new channel beyond Fireship. Thanks for watching and I will see you in the next one.
The speakers discuss various popular video games and their features, including transcription and batching data, and the benefits of using Amplify for developer experience and managing data. They also mention the use of N host and Supabase for building a fully-integrated app for web and mobile developers, and the use of MongoDB Realm for document-oriented database for developers. The importance of privacy and security is emphasized, and subscribing to a brand new channel for more tutorials is suggested.

        [INST]
        You are youtuber called Fireship you make engaging high-intensity and entertaining coding tutorials and tech news. 
        you covers a wide range of topics relevant to programmers, aiming to help them learn and improve their skills quickly.
        
        Given the title of the video : I tried 5 Firebase alternatives 
        and a small summary : The speakers discuss various popular video games and their features, including transcription and batching data, and the benefits of using Amplify for developer experience and managing data. They also mention the use of N host and Supabase for building a fully-integrated app for web and mobile developers, and the use of MongoDB Realm for document-oriented database for developers. The importance of privacy and security is emphasized, and subscribing to a brand new channel for more tutorials is suggested.
        [/INST]
        
        Generate the video : If you follow my channel, you know I'm all about that base, about that base, about that firebase, no sequel. Because honestly, I'm just too lazy to build a back end that won't get hacked to pieces as soon as it goes live. I find it much easier to sell my soul to Google in exchange for a real time app with one line of JavaScript. I'm no Apex Alpha Gigachad building my own back end in Rust just to serve 5 monthly active users. A back end as a service is an extremely complicated product for a company to offer. You need to take a bunch back disparate cloud infrastructure pieces like databases and servers, then write SDKs for multiple platforms and multiple languages, then secure and document everything for the lowest common developer. It's not easy, and for many years, the only game in town was Firebase. But that's not the case in 2023. I tried out 5 different Firebase alternatives to find out which BaaS is best, including Amplify, MongoDB Realm, Supabase, Nhost, a app right. We'll compare popularity, pricing, features, and potential drawbacks of each one of these platforms. But first, I wanna take a look at Firebase to give you a baseline for comparison. Its Web SDK gets over a 1000000 downloads per week, but is even more popular on mobile and is used by many popular game studios. Firebase has a ton of features like analytics, crashlytics, backs performance monitoring and so on. But the 3 most critical for app developers are user authentication, database, and server side functions. These infrastructure the back pieces are hosted by Google Cloud Platform. And what Firebase does is provide SDKs for front end applications like JavaScript, iOS, Android, Flutter, Unity, etcetera, so developers can access them without having to architect, deploy and maintain their own server side code, which either requires a ton of manual labor or 1,000,000,000,000 of dollars to hire engineers to do it for you. When it comes to pricing, Firebase has a generous free tier, then authentication is always free with the exception of phone and multifactor off, but the Firestore database and cloud functions scale up based on usage. In some cases, it can be expensive at scale, but it really depends on the location and you should carefully calculate pricing based on your anticipated growth. Most of my projects grow by a factor of 0 which makes Firebase very affordable. Now, one of the biggest drawbacks when in Firebase is that you're locked in. Most notably, Firestore is a proprietary database, which means if you ever wanna use a different database, you'd have the big undertaking of migrating that data somewhere else. Firebase is just like cocaine. It feels great to get things done quickly, but trying to come off of it is not very fun. Cocaine is a hell of a drug. On Firebase, we can flip a switch for Google authentication, back then implement basic OAuth with a single line of code. We can then listen to the auth state in real time, then take the user ID to make queries to the database. Not only is the code incredibly simple, but when data on the server changes, it magically updates the UI. Basically, you get real time apps for free. And that brings us to AWS Amplify, which is Amazon's answer to Firebase. It has a very impressive list of features that include things like analytics, predictions, and notifications that aren't found on many of the other options on this list. Its primary database is DynamoDB, which I found to be pretty painful to work with in the However, Amplify automatically creates a GraphQL API for your data. It even has a no code tool to define relationships for your data and it is possible to also connect a relational base to your API. In addition, you can make your data searchable with Elasticsearch, which is a big missing feature in Firebase. User authentication is handled by AWS Cognito, which feels a bit more mature than what Firebase offers. Most importantly, you can create user groups, then control what those user groups have access to in your project. Like Firebase, pricing is pay as back go, so you'll need to carefully calculate usage to figure out how quickly your money will evaporate. And you can also expect vendor lock in here if you use proprietary AWS products. It has SDKs for all the major web and mobile platforms and is really the only one on this list that challenges the popularity of Firebase with about 400,000 weekly downloads. Now, if we We jump into some code, you'll notice a much different developer experience. Amplify relies heavily on code generation to create the back end API for your data. This dumps a bunch of code into your project that you'll have to constantly sync with AWS, but it creates a great developer experience for data fetching because you have a GraphQL schema that provides IntelliSense, but at the same time, you don't need to manually write GraphQL queries. You get nice simple one liners just like that Firebase SDK. And that brings us to our next platform Supabase. It's been around since Y Combinator season 20 and has the core features you would expect like auth, file storage, and serverless functions, but its main distinguishing feature is the database. It uses the open source Postgres, a relational database. This provides several advantages. For 1, it provides a more flexible and industry standard way to back model data. And 2, you don't have to worry as much about vendor lock in because you can host a Postgres database anywhere. One drawback though is that there are some missing features like website hosting, which means you'll We also need something like Vercel and Netlify, and its SDKs are really only focused on the web with the exception of tools like React Native, Flutter, and Ionic. They don't seem to be too focused on the iOS, Android side of things. It has gotten pretty popular on the web with over 40,000 weekly downloads currently. When it comes to pricing, there is a free tier, but you're limited to back into projects, and they'll sleep after inactivity. For a serious project, pricing starts at $25 per month, but it contains enough usage to take you up to a 100,000 monthly active users, then turns into pay as you go after that. Overall, it's a great deal when you compare it to pricing for relational databases elsewhere. The real magic of Supabase base though is that it makes relational databases easy to work with. It gives us a browser based tool to manage our data and integrates nicely with user authentication where where we can implement row level security policies to control who has access to our data, and I found its JavaScript SDK very enjoyable to work with. It's a lot like the original Firebase SDK where you use dot notation to grab the data you want and then perform operations on it. What's cool though is that it also supports GraphQL, so you have that option as an alternative. Postgres also supports things like full text search and can return the count of a table, which annoyingly is not possible in Firebase. When it comes to real time access to data, you'll have to opt in manually. It doesn't just work out of the box, but once you do that, you can easily subscribe to it from your front end code with the SDK. Next on the list, we have n host, the open source Firebase backternative with GraphQL. This project is built on top of Hasura, a very cool platform I've broken down in the past that can take a relational database and turn it into a GraphQL API. Pricing is very similar to Supabase, free to play around with, and $25 a month to get serious. If we look at NPM downloads, it doesn't have a ton of traffic, but Hasura is extremely popular, so that metric doesn't really paint the full picture in this case. The UI is nice and intuitive and allows you to visualize all your database records here in the browser. What's Special about Enhost though is that your Postgres database is also a GraphQL API. That means you can play around with queries and mutations right here in the browser as well. It's important to point out though that you can't do everything from the end host dashboard. In some cases, you'll need to access Hasura to do things like back update your database permissions and security rules. That might feel somewhat awkward, but they do a good job of documenting everything. Now, let's take a look at some code. Enhost has first class support for React and provides hooks to perform authentication with a single line of code. When it comes to database queries, things will get a little more complicated because at that point, you'll be working GraphQL and Apollo client. These are awesome technologies, but there is a learning curve and the code tends to be a bit more verbose than what you would expect with Firebase. For example, to fetch items from a database, we first need to go to Hasura and add the table and columns to the schema, then define permissions to allow access to that data. And we probably also want to go to the GraphQL Explorer to test out the query before we add it to our code. We can then run it with the useQuery hook provided by ApolloClient. On one hand, this code feels a bit more robust than Firebase, but there's also more friction if you're just prototyping something quickly. Ultimately, n host feels like a very close competitor to Supabase. Base. But if you're into GraphQL, you'll likely have a preference for the way N host does things. Next up, we have AppRite, which is another open source back end for web and mobile developers. It has the same infrastructure pieces as n host and Supabase, but has SDKs for both the web and mobile. As of today, it's not a commercial product yet, which means you would need to self host it, which can be done with a one click install on DigitalOcean, but they are coming out with a fully managed service called AppRight Cloud in the near future. It's free and open source, so you don't have to worry about vendor lock in, but paradoxically, free and open source can actually be more expensive because you don't have a cash burning startup willing to lose money on you to pad its growth number as you raise more money in the future. In terms of popularity, the JavaScript SDK doesn't have a ton of downloads, but the Docker image has over 5,000,000 pools. Go ahead and pull it to spin up the AppRight dashboard in your browser. It has an impressive list of authentication methods, but the most interesting thing to me is the database. It's a NoSQL document database, kind of like MongoDB or Firestore, and I found it very easy to use, but it also felt kind of mysterious to me. I did some research and found that it's based on MariaDB, which is actually a relational database and a fork of MySQL. Basically, what they're doing is giving you a NoSQL API back to work with a traditional SQL database. This is not unheard of and was inspired by previous work from Wix. If we jump into the code, we'll find a lot of easy one liners for authentication and database management like you'd expect from a platform like this. One thing it doesn't support though at this point is GraphQL. In any case, AppRight does feel like a tool with a lot of potential. And that brings us to the final product on this list, MongoDB Realm. As you may know, MongoDB is the most popular document oriented database out there, and Realm was a startup that was acquired a few years ago that focused on providing tools for mobile developers. Today, it can sync data from MongoDB Atlas as to any web or mobile platform. The JavaScript SDK doesn't have a ton of downloads, but it's highly focused on mobile platforms, so that doesn't paint the whole picture. Pricing will primarily depend on how you use MongoDB through Atlas, which can either be serverless or dedicated. Then you have additional pay as you go pricing for compute time on things like serverless functions. If we go back. The dashboard will find features like authentication, although it does feel a bit limited compared to other options. The real power is in the database and the ability to sync it with front end applications. It's also capable of generating a GraphQL API from your database. When it comes to accessing data, things feel a little more complex than Firebase base because you'll also need to think about a schema to define Realm objects, which translate MongoDB data into something you can actually use in your application. End. Once you have it set up, it does make real time subscriptions very easy to manage, and you can also use GraphQL and Apollo if you prefer. Overall, I think Realm is a great option, but may feel a little more advanced compared to some of the other options we've looked at, and it's a no brainer if you're already using MongoDB. Before we wrap up, there's one other platform that I want to mention called Parse. It's been around since 2013 and was acquired by Facebook and subsequently shut down a few years later. It's now open source and still actively maintained today, but I just haven't tried it myself. Ultimately, nothing is perfect and it all comes down to trade offs. The only thing that matters is that you get your app shipped. Just marry the best looking one and hope it all works out in the end. But don't ever get divorced because then you'll be paying alimony and child support to your legacy apps. And finally, if you wanna see more advanced tutorials about these platforms, subscribe to my brand new channel beyond Fireship. Thanks for watching and I will see you in the next one.
        