website-code

This is part one of a multi-part series of posts in which I will be sharing my journey of establishing a web presence for myself at stuartlupton.com.

 

But why?

For a long time I have been meaning to create an online presence for myself in the form of a website and blog. Not to gain fame or fortune, but to share personal projects I am working on with the hope that some of the content can help someone treading the same path.

 

Concept

I had a rough idea from the beginning of what wanted out of a website :

  • Must have an About Me, Résumé and Blog section.
  • The Blog format should be markdown.
  • Low operational cost (I am a Yorkshire man after all!)
  • Source code should be in Git.
  • Amendments must be automated via a pipeline.
  • I want to be able to write & upload blogs easily from my iPad.

 

Where to start

Based on my rough requirements it was clear that a static website would be sufficient for my needs. I started to look at different static website generators, the obvious choice was Jekyl arguably the most popular static site generator, seconded by Hugo.

After comparing the two for my use case the clear winner for me was Hugo the setup was simple, builds were fast, less that 1 second fast! Jekyl would of suited, but Hugo’s simplicity and speed won me over.

Once I had my selected static website generator tool, I needed somewhere to host the content. This was an easy choice for me as I have a lot of experience with these services, both professionally and in previous personal projects - S3, CloudFront & Route53

S3 would provide the object storage for my static content. CloudFront enables me to host the website over HTTPS and makes it so any readers outside of the UK would be served with content must faster than if they were accessing directly from the S3 bucket. Finally Route53 would provide the resolution to my domain namespace, which is already hosted by Route53.

Now for the source code (you may begin to notice a recurring theme here) I chose AWS CodeCommit which hosts fully managed git-based repositories, it also integrates nicely with CodeBuild and CodePipeline - which I will use to fulfil the requirement for having an automated pipeline.

My final requirement was to have a workflow, which involves me being able to sit in the garden with my iPad Pro and blog about techie stuff. I will also cover how I went about this in a future post.

As projects generally do, this one grew in scope as I also decided I wanted a comment function so I could further assist readers and obtain feedback.

So that is a lot of services, I have my work cut out!

Thankfully for me, if your reading this then the website is up and it did not all end in flames and tears!!

In part 2, I will start breaking down each step in a little more detail. I hope to see you there :)