Home It's Alive - Jekyll, Github Pages, and a Custom Domain
Post
Cancel

It's Alive - Jekyll, Github Pages, and a Custom Domain

One of the most frustrating periods in a software developer’s personal life is building the personal webpage. We are paralyzed by choice. The combination of languages, databases, and tool chains could eclipse the number of stars in the sky. This one, for example, is already my 3rd iteration. And even then, I feel lucky. In my 12 years of being paid to ostensibly write code and make computers do my bidding, I have not thought of my homepage as much more than a repository of projects and a resume to be updated every couple years. But then I think of my earlier years, full of vigor, excited about this space. I don’t think I ever lost it, but I have lost the will to document it. In this 3rd iteration, I hope to improve my creative writing, technical writing, and possibly be useful to anyone stumbling upon this site, looking for technical tutorials. I promise to be more interesting than ChatGPT, if only because my prose is not nearly as eloquent.

Choosing the Stack

This stack was chosen for its low maintainence, but high technical extensiblity

Custom Domain

A custom domain is somewhat of a no-brainer to anyone who understands or wants to understand the internet. A private island for the owner. A sandbox to learn some of the more esoteric and oldest parts of the internet. DNS Records, IPs, namespaces, and physical routing.

It also offers the very professional feeling “custom domain email”. Something that will be yours forever, without regard for the churn of capitalism. TODO: Write a post about how to setup custom email.

Jekyll and Github Pages

For developers, setting up a personal site could go down one of many paths

  1. HTML, CSS, and JS. Fronted by a static content server of some flavor, nginx, httpd, etc.
  2. Some scripting language dynamically generating content from a database. Fronted by a reverse proxy, nginx, Envoy, HAProxy, etc.
  3. Managed hosting, e.g. Squarespace.
  4. Github Pages

In 2023, the difference between 1 and 2 are really blurring. Unless you are writing plain HTML/CSS/JS, the actual generation of frontend content is managed by frameworks of ever-increasing-complexity. Frameworks like Next.js build on top of complex libraries like React to form toolchains that would make even a Spring Java engineer cry. Anyone using these toolchains to build a personal page will go on a sisyphean endeavor to ensure their website remains buildable as hundreds of dependency libraries shift under their feet every day. For those who still enjoy writing bare HTML/CSS/JS, I salute you.

And yet, that’s not the hard part. The true terror of websites in 2023 is security. From 0-days to TLS cert rotations, security is understandably a not-insubstantial division in any company that values their patrons. The ability for a single individual to protect their meager site is laughable. At best, secure by obscure, at worst, knowing we can always nuke the VM if necessary. I say this to past self as well. Before now, my site has been self hosted on a lovely $6 a month VM.

That leaves the last 2 options. I have used Squarespace and it is a good product. Its support for rich content and customizability is amazing. But it also is what it is, a CMS for storefronts and basic static content sites. The cost makes no sense to me.

Finally, we have Github pages, which for all intents is just option #1 with all the security layers managed by Github (Microsoft). And this is where we end at. Or nearly end at.

Jekyll is something we use at work for documentation. I don’t love it, but as a generator for HTML, it is reliable enough. This theme is also a very nice base to start from.

Now what

I plan to write stuff, hopefully semi-regularly. TODO: Refer back to this post in 2 years to see if this has happened.

This post is licensed under CC BY 4.0 by the author.

-

Authoritatively Wrong