3 minute read

Progress continues on my website, albeit more slowly than I would prefer. However, now I seem to have hit the knee of the learning curve. I’ve had to give myself a crash course in several things along the way.


Who wants to learn how to code raw HTML to design static websites? I sure don’t. A static site generator (SSG) provides the perfect solution. According to Cloudflare:

A static site generator is a tool that generates a full static HTML website based on raw data and a set of templates. Essentially, a static site generator automates the task of coding individual HTML pages and gets those pages ready to serve to users ahead of time.

I’ve chosen Jekyll as the SSG for this site. I’ll readily admit I found the learning curve a bit steep since I have virtually no coding or software dev skills. Like most web-related open source tools, Jekyll runs on Linux. I chose to configure a VM on my Mac running Ubuntu as my development environment. The developers wrote Jekyll in Ruby, so I had to learn just enough about Ruby and Ruby Gems to get essential libraries, helpers, plugins, etc installed and configured. I created a couple of bare-bones test sites served up locally in my VM to acquire enough working knowledge to confidently build sites, figuring out issues along the way like dependencies before attempting to host a site on the Web.


Did I mention I have no experience developing software? As part of my learning curve, I had to become familiar with the source code repository and version control tool Git. For software devs, working with Git becomes second nature. For me, working with new concepts and terms like committs, forks, pull requests, merges, etc made the curve that much steeper. However, Git has become table stakes for software development, and using it for websites makes things so much easier. Thousands of open source Jekyll themes reside on GitHub. If I wanted to deploy those themes, I meant learning how to fork those theme repositories to my own repositories to customize them for my site.

AWS Amplify

In the Web 1.0 days, I learned how to host static websites (with Server Side Includes for you web geeks) on a public web server. I paid a hosting company a monthly fixed-cost fee for that server, and over the years the cost of that server has steadily increased. Today, the only production site sitting on that server I host as a favor for a dear friend. Since I already had the server paid for, and it did very little beyond hosting an email domain, it didn’t cost me anything extra to host his subdomain. It has become a much more costly favor than I ever anticipated, and I wish to decomission that server. This served as my initial motivation to learn all this Jekyll stuff. I wish to migrate that site to a new hosting service.

Cloud computing changed the game in the Web 2.0 era (thanks, AWS!). Rather than paying a hosting service a monthly fixed cost for a server connected to the Internet, cloud providers enable you to ‘rent’ a virtual server and only pay for the resources you actually use. It usually results in significant savings over a fixed-cost hosted server. I had initially planned to migrate the site I currently host for my friend from the dedicated hosted server to a cloud computing instance in AWS to reduce my costs. Then I discovered AWS Amplify.

AWS Amplify makes hosting a breeze. It eliminates the care and feeding of a server such as patching and updating an operating system. It has very low metered (pay-as-you-go) costs, ideal for sites without heavy traffic. It has native support for popular SSG frameworks like Jekyll. It also integrates with CI/CD pipelines, so whenever I make a change to the site’s code, AWS Amplify will automatically rebuild and deploy the newly updated site.

I’ve learned an incredible amount in a small amount of time. This old dog still has a few new tricks in him. The journey continues; stay tuned for more.