I am creating a blog. Mainly to learn new stuff. During the build I will document the process on the blog itself.

Technology and intentions

The main purpose of building this blog is to deepen my skills in the AWS environment and also to have a place to document some of the stuff that i learn along the way.

The high level goal is to build a fully serverless application using the AWS serverless application model - AWS SAM.

All the blog conent will be stored in Markdown format in DynamoDB, build to html by a python lambda listening on DynamoDB stream and accessible using Api Gateway. The static web page is deployed on the Azure static web apps service.

Front end

As I never played with Vue.js and am quite proficient with React, I did not want to just create another react app. In a similar manner, I wanted to try Tailwind CSS instead of my favourite and repeatedly used Bootstrap.

The frontend is deployed on Azure Static Web Apps as it offers a good enough free tier and is extremely easy to set up.

Back end

I have chosen DynamoDB as the data strorage for a few reasons:

  • Serverless - usually picked for scalability and low maintanence. The main focus is scalability here, but the opposite way as usual, as I want to be able to scale to zero and pay nothing if I do not work on this project and in can be left untouched for years. Also I do not expect nearly as much traffic to get even close to the AWS Free Tier limits.

  • Web UI - DynamoDB has a pretty good web UI, that could be basically used as a content management system. I want to build a backend admin app eventually, but the AWS console itself is enough to start typing out articles.

  • Learning - again, I am choosing technologies I am not that proficient with, because the main focus here is to push myself into learning new things.

  • Streams - I can have a lambda listening on DynamoDB stream to pick and changes in articles, translate markdown to html and compile components for the articles.