The story behind my first AWS Amplify App
Tags: aws, javascript, ionic, angular
Published: 2022-10-26 22:01:16

I have been an indie developer making production apps since around 2016. Most of these apps were just apps to learn more, but were put into production to people could use what I was building as I was learning. Most of these products are no longer in production and have been deprecated, as they cost money, and have no revenue streams to make them back.

In 2019, I was watching a streamer [BruisedLee01](https://twitch.tv/bruisedlee01) on Twitch.tv, and he was joking around saying that someone should buy his bot and make it a public feature on Twitch, and then I make a joke to a streamer on Twitch.tv about just doing it ourselves and releasing it as a Twitch Extension for public consumption. This lead to a few offline calls and after a quick proof of concept app, I released the first version of [Shadow Flips](https://www.shadowflips.com). I took what I have been learning and building for the previous 3 years, and build a serverless cloud-hosted backend on Google Firebase, a front-end web app using [Ionic Framework](https://ionic.io/framework) hosted on [Twitch's Extension Store](http://extension.shadowflips.com/), as well as a stand-alone desktop app with Ionic Framework as well, but running in an [Electron](https://www.electronjs.org/) app. I chose these tools and frameworks because I was taught Ionic and Firebase at my university where I took a mobile development course. Over the years, I learned how to keep my cloud costs extremely low and very optimized.

I was introduced to AWS Amplify from my connections at Twitch and was invited to be one of the server admins of the [Amplify Discord Server](https://discord.gg/amplify). I then started to learn about Amplify and all of its features, and when I started to look into AWS Amplify to replace firebase, it was very daunting because of the stigma that AWS has around pricing. In Shadow Flips, I was able to keep my monthly costs well under $1 a month, so moving over to AWS would have been a real shell shock to my wallet, but I loved the idea behind AWS Amplify, and I wanted to give it a go. 

This year, my team at work decided to build an internal application for our team to help automate tasks, and build a dashboard to help with our work. I thought this is my opportunity to use AWS Amplify. I wrote up a presentation doc on why we should use AWS Amplify instead of spinning up all of the backend resources ourselves, and why we should use Ionic Framework to build the app. My sticking points were how quickly we can iterate on code and spin up backends without having to know AWS beforehand by using the [Amplify CLI](https://docs.amplify.aws/cli/). Our team are not SDEs, but we have knowledge about Computer Science, but not much practical experience. I am the most experienced on our team, but only as an indie developer. We do have a sister team that is made of SDEs, but this was our project to build out.

We spun up the Amplify backend, built a rudimentary front end, and started going. The first thing I had to develop since this is an internal app, is locking all of our work behind our corporate SSO. This seemed to be pretty daunting as well, but the resources available online in the Amplify docs, Amplify Discord, Stack Overflow, etc. really make the task much easier than I originally expected. The learning curve on still having to go into Cognito and setup federated identities was still a lot more complex than Firebase to spin up custom authentication, but in the end, I didn't have to write any code to get it working, which is a huge benefit over Firebase, where I had to write custom cloud functions when I wanted to integrate non-standard identities into my apps.

We started to use the app in our day-to-day activities, and it has helped return our TTR on tickets. Having used it for a few months, I believe the scope of the usage, in my opinion, would be very similar to other apps I have developed on Firebase, including Shadow Flips, and comparing costs, AWS Amplify was slightly higher, but still running only a few dollars a month. So any small bankroll, or any small income streams from your app, while it is still small, is very manageable on AWS Amplify, as that was the thing I was worried about, to begin with on why I didn't want to switch over. AWS Amplify also has a free tier on AWS, so if you are just building your app and plan to have a revenue stream within a year, it's worthwhile to test out AWS Amplify to see if it will suit your needs.