Otherwise known as, why I think AWS Amplify is a glimpse into the future of what programming will be and why I need to upskill or maybe side skill!
On Sunday night I was reading an awesome article by Jeremy Daly about micro journalling, the premise of this was that you could create many small notes about anything and everything to reconstruct your train of thought to create a clear picture of how you have spent your time.
I loved the idea and spent an hour looking for apps that would give me control of my data and a searchable timeline of my activities. After digging through the options, nothing really fit the bill of what I wanted. Backup strategies were sparse or poor and the applications were only single-device compatible.
I had wanted to try out AWS Amplify for a while and this seemed like a perfect way to POC an application at speed. In reality, it was a slightly more complicated version of the standard TODO app that ships with every new frontend framework.
Building the Application
I started with the Amplify React documentation, it was an absolute breeze to set up. Within one command I had an S3 bucket and CloudFront distribution deployed, with the next I had authentication via Cognito Setup and with a login and registration screen within my React application. The next command created a GraphQL endpoint via AppSync and an Elasticsearch instance was deployed.
Next, I then yarn installed the awesome React Material UI component library to give me a quick start for components. It was super simple to set up the basic components and have a working application flow. Amplify had already created all of my GraphQL queries and mutations, which were fully authenticated. So there was very little of the traditional data handling wrangling.
I have never witnessed this kind of speed of development for any weekend (or weekday) programming effort, it is kind of scary, as this used to be really hard stuff that required a lot of knowledge and time to get right!
Today I learned
- What I thought was the domain of serious backend developers is now as simple as a single CLI command. Of course, this is only a basic CRUD application, however, it feels like this could be the precursor to a bigger shift, maybe even the next step of Serverless (Lambda).
- I see Lambda / Serverless as the Glue between services, I am not sure what Amplify is, but there is definitely less Glue.
- Micro journalling is an awesome idea, have seen people in the organisations I have worked at doing versions of this. Being able to easily search my train of thought is probably a worrying thing though.
- Still, don’t have knowledge about how well AWS Amplify would scale within an engineering team when the challenges need to be more bespoke. The current thinking is, I can’t wait to try this out in a production environment!
- The best thing about this approach is that the only scaling issues I could see are with Elasticsearch, however, there are worse problems to have.
Feel free to try out the application here, I am using it for all of my notes and improving when I need it to be better, so it isn’t going anywhere, feedback welcome.