Progressive Web Apps With AWS Amplify
Over the past few years progressive web apps have become increasing popular. They provide users a smooth app like experience without the headaches of building (and maintaining) platform specific apps. Plus with modern frameworks such as react, progressive web app features are build in.
The first progressive web app I created for our internal operations team was a simple camera app designed to automate classification and storage of installation photos. The teams loved the ability to easily take, label, and upload photos on their phone, and then use the same app to make edits on their desktop. Considering this only took a week to develop and deploy it was a huge success.
One of our account executives wanted to start providing our monthly client reports online, vs the traditional email route. He needed a cross platform app that was cloud hosted, redundant, and secure. He also needed it yesterday. Hitting these requirements with a traditional app was impossible, mainly since it needed to be hosted off premises with redundant storage. However I was fairly confident this could be accomplished in the AWS ecosystem.
After a bit of research it looked like this was possible utilizing Amplify, Cognito, S3, CloudFront, and Route53. While my initial experience with Amplify was as build and deployment tool connected to Github, its way more. In fact Amplify offers the most complete development workflow I have ever seen.
- How to Build Serverless Web Apps
- Store and Retrieve Data in Amazon S3 with React and AWS Amplify
- Amplify Docs
Using the Amplify development platform you have seamless access to the entire AWS ecosystem. Need a secure login? Easy, just add Cognito. Need secure storage? Just add S3 access. Need hosting? Just add it. Amplify takes the serverless concept to the extreme. Not only does AWS hide the servers they even automate adding additional functionality. For example when you add hosting, you literally type “Amplify add hosting”. This triggers AWS to create the S3 bucket and a CloudFront distribution. The one downside to Amplify is you need to be comfortable with modern web apps, the AWS ecosystem, and command line. If you can live with those requirements, then 100% check out AWS Amplify
So how did the project turn out? Thanks to AWS I nailed it!