Mac Libby

Evan Howlett

Mission : Blog

At HCRD, the majority of our concerns revolve around the development of new technologies - this often takes the form of software projects, as one of the corner stones of the company is a common love for programming; plus, software is cheap to develop!

Why, then, would we choose to build a blog? Something which is, ostensibly, quite outside our typical domain of development. It really comes down to one uniquely great thing about blogs - you can really put as much work into them as you want. Throw as many features into it, try out different technologies you might not use under normal circumstances; and most importantly, being a less serious venture, you can - and we did - make a great deal of fun out of it.

The actual blog component of this site - the listing on the home page, the ability for us to log in and write new posts, and the ability for anonymous users to comment/react to posts - was all written in just a few hours. We spent the majority of the development time split between polishing those features - you may notice the special event that occurs if you "hate" one of these posts - and adding in unnecessary, but admittedly humorous and fun, features.

The astute reader may recognize the icon on the left side of the nav bar, as well as those in the comments sections of posts - these are jdenticons, produced from the remote ip addresses of user sessions. We added these as they act as a sort of unique identifier for visitors, well still providing pseudo-anonymity. Additionally - and perhaps more to the point of why we incorporated these into this blog - jdenticons gave us a way to stretch our htmx legs in a unique way, since they can be tricky to load depending on how the page is built, when they are delivered, etc.

Centralization of Public Releases

A big plus of having a website dedicated to serving up our ramblings is the ability to centralize our use of social media. We have, in the past, wanted to write a post on the social media websites we are - more or less- active on; this poses an inconvenience because we would write it on one site, and end up copying and pasting on other sites, which can lead to frustration due to differing character limits, intricacies of links, formatting, etc. Hence, we can post what we want to talk about here - with significantly increased functionality, the ability to format using markdown, add images, and a bounty of other bonuses - write a short summary of the post with a link here and post that on all the various sites instead

Test Driving New Stacks

A blog really is one of the best ways to test drive new tech stacks - an MVP blog should, more or less, consist of a page that lists posts, a page that displays a selected post, and a way for the authors to write new posts (i.e. a method of authentication coupled with some sort of editor that can submit new posts to a database). The listing of posts as well as the fetching of particular posts to read are a good way to test out how a back-end and front-end communicate data with one another, and how best to do so efficiently and extensibly, and the authentication portion acts as a good trial of form binders, plugging generic services into a back-end, and handling authorization during the users session.

We are always on the look out for novel ways to develop new software tooling and applications that we have in our pipeline - we often come up with an idea, and allow it to stew until we find the right set of tools necessary to build it. In the case of this blog, we took interest in htmx and Giraffe - see our footer for links to those resources - and tried to get as much out of each as we could. While there is no doubt more to explore with these tools - even now we have several other projects in the works utilizing these tools - this blog definitely seems to be a good trial of the capabilities of both.

More to Come

We foresee this site maintaining a place in our regular rigamarole as an ongoing project we can spend some time on when we need to take a load off from more intensive projects, both in the form of writing on the more peripheral projects we are cooking up, as well as taking time to make improvements - necessary and otherwise - to the functionality, performance, and aesthetic of the site.