It is 2019 and the future is NOW. As a human race we are are still struggling with global warming, alternative β€œfacts” and few other tidbits. But what we have really, really nailed down is sharing content online. So how hard can it be to build a blog?

Well thanks for asking! Extremely easy. There are solutions left and right. One might say, you should not even do it. Use instagram.com, they have a nice website. Host your eggs there…

Well, I fully intend to. But first I will procrastinate! Content creation is hard. You have to sit, think and get the spelling right. It is much more interesting to build this first:

Blog flow diagram hence the procrastination

Few high level goals for an overengineer blog:

Infrastructure

DevOpv

Dev

Why not github pages? Actually, ivankathetanka lived on github for few weeks. But honestly it was like having your personal blog on wikipedia. It is not meant for that. Use it for your open source project documentation. There is nothing better for that! I’ve quickly gave up trying to squeeze into the limitations imposes by jekyll on github and decided to host on AWS instead.

I suppose the end result could be summarised by XKCD 974: The general problem

Repository structure

ivankathetanka
β”œβ”€β”€ _includes - JS shared across pages
β”‚   └── shared.js 
β”œβ”€β”€ _layouts 
β”‚   └── compress.html - layout that compresses HTML
β”œβ”€β”€ _posts - every post goes here
β”‚   └── 2019-05-01-we-are-here!!!.markdown 
β”œβ”€β”€ _sass - shared styles
β”‚   └── shared.scss
β”œβ”€β”€ _site - the output folde created during build
β”‚   └── *.html and resources
β”œβ”€β”€ css - top level styles
β”‚   └── styles.scss
β”œβ”€β”€ js - top level sripts
β”‚   └── card-modern-blog.js
β”œβ”€β”€ img - processed images
β”‚   └── *.png/*.jpg/*.svg
β”œβ”€β”€ raw_img - unprocessed images
β”‚   └── *.png/*.jpg/*.svg
β”œβ”€β”€ favicon.ico - oh this is a beauty!
β”œβ”€β”€ index.html - main site template
β”œβ”€β”€ map.html - page with a map
β”œβ”€β”€ route.json - geojson for the map
β”œβ”€β”€ buildspec.yml - CodeBuild build file
β”œβ”€β”€ Gemfile - Ruby bundle dependencies
β”œβ”€β”€ Gemfile.lock - Ruby dependency versions
β”œβ”€β”€ _config.yml - Jekyll configuration
β”œβ”€β”€ optimise.sh - script for compressing the images 
└── serve.sh - script to start local dev server

Coming soon: