Starting my Personal Website
I’ve wanted to document my projects for a few years, after following plenty of other creators with excellent project documentation, but I’ve never found the time to start. This is my start. I’ve built my personal website, created content for back projects worth sharing with the world, and I’m committed to continuing to document and share the things that I make.
All In The Name⌗
I started off with choosing a name. I’ve used the name ‘apalrd’ for many years as a personal account, and I decided to make that the domain name. But, I still had to choose a top-level domain. Do I want the trendy .tech? Personal .me? Slightly less expensive but also trendy .io? I settled for .net since it’s less expensive. It’s also a classic TLD, and fits well with the technology and homelab vibe.
The Wild West of Internet Security⌗
I’ve experimented before with running self-hosted websites, and for awhile in the past I had a personal forum hosted at my house, accessible only to those friends who knew my free dynamic DNS name. I played with administering Linux servers starting all the way back with Ubuntu 6.06 Dapper Drake, on my parents used desktop. I was able to get a basic enough Apache and MySQL setup in the most insecure way, load phpBB and Drupal, and go to town. Back then, AIM was still the messenger of choice for a lot of people, Facebook had just launched to the public a few months prior, and this private forum is how my friends and I communicated with each other from our home computers.
In the years since that forum, I’ve learned a lot about security. In fact, I’ve learned that security is something I really want to leave to the experts as much as possible. I’m also much more conscious of the proliferation of user tracking, and want to minimize how much my site feeds Big Data information on my viewers. To me, the best way to achieve all of this is to make the site completely static, not include any social media ‘share this’ buttons, and not include advertising. Without any server-side code execution, the exploitable surface area is minimal, and with as little client-side code as possible, the site should load quickly on all devices, and should even look reasonably close to correct with Javascript disabled completely. In fact, I audit the view of the site using NoScript to make sure the site looks as I intend for those viewers who have chosen to block Javascript by default (and this is something I’d encourage everyone to use where possible).
A New Hope⌗
I use a tool called Hugo to generate this site, and store the contents of the site in a Git repository, entirely separate from the public server. Pages are written in Markdown, a simple textual language that can be rendered directly to HTML by Hugo, and the site’s theme can be added to all pages when generated. After page generation, the site’s HTML files on my local computer are synchronized to the hosting provider, which is operating as a static content delivery network. This also means I am not responsible for administering a virtual private server, and can let the experts handle hosting security without giving up full control of the exact HTML and Javascript that my viewers get.
I hope you enjoy the collection of projects I work on, and I hope I can continue creating content that’s enjoyable to my viewers. Feel free to contact me by clicking on my email address at the bottom of any page (Javascript must be enabled for it to show up).
Signed, Andrew