In the startup space, we don’t always have the resources to build the product of our dreams. Instead, we need to rapidly develop an MVP to show potential investors and customers what we have to offer. Once that is done, we can iterate and scale the application according to current and projected demand. With that being said, there are some important technical decisions to be made in the early stages of product development.
Choosing the correct backend services for our application is crucial. Luckily there are a handful of BaaS (Backend-as-a-Service) options available to quickly build out a backend for an affordable price. Some of the most prominent BaaS platforms are AWS Amplify and Firebase. Both have minimal configuration required and free tier pricing for small applications. Of course, each has competitive advantages depending on the size and functional requirements of our product.
Many BaaS platforms include authentication, databases, APIs, and hosting. AWS Amplify and Firebase also include cloud storage, push notifications, and analytics. API calls can be made through REST endpoints and Amplify allows for GraphQL calls as well. Firebase offers No-SQL databases while AWS offers both SQL and No-SQL. Analytics for AWS Amplify are powered by Amazon Pinpoint and Amazon Kinesis and Firebase uses Google Analytics as Firebase is provided by Google. These platforms are built on cloud computing services from Google and AWS.
Advantages and Limitations
Amplify has many out-of-the-box features built on existing AWS services as does Firebase with the services of GCP (Google Cloud Platform). Most out-of-the-box features are suitable for the needs of an application, but there may be use cases that require additional functionality. We can also leverage additional services of AWS CDK (Cloud Development Platform) or GCP (Google Cloud Platform) to be used in conjunction with Amplify or Firebase.
Migrating Between BaaS Platforms
It is important to thoroughly understand your long-term product needs to avoid a migration between BaaS platforms. This is generally a costly and challenging task. Complex applications may require additional services from AWS CDK, which are not offered by Firebase. Depending on user traffic, Firebase can quickly become more expensive than Amplify which is an important factor to consider.
If you expect to be conducting millions of transactions per day in your app, you may want to go with AWS Amplify for reasons of cost. Less than that, Firebase may be a faster option to implement at a comparable cost to AWS Amplify. Take a look at these resources for pricing examples:
Firebase allows you to set up backend services including hosting, database & authentication in several hours. AWS Amplify is also quite fast to get started but requires more configuration. Each have a CLI and UI to interact with and manage services. You don’t need to be a backend expert to effectively utilize both platforms, although any experience is helpful. Knowledge of the AWS CDK or Google GCP will lend a deeper understanding of the services provisioned and how they work together.
Firebase with the addition of other software tools such as an email service can represent a faster time to market. Otherwise, Amplify with additional AWS services can offer a more robust solution in the long-run. Take note that configuring AWS services to work with Amplify will require stronger technical skills. AWS also has partnership programs available to further incentivize adoption of the platform. Be sure to accurately assess the projected scope of work for your product to make the best decision. So have fun, and enjoy the breeze of working with BaaS platforms.