Following on from my recent post covering the success of hermitclock.com, I’ve decided I’d like to keep a record of the work I’m doing on the website. This will showcase the work that’s been carried out, as well as upcoming features that I have planned. Without further ado, let’s jump in!

What’s new?

A screenshot of GeminiTay’s dedicated page within HermitClock

HermitClock has grown considerably smarter over the last few weeks alone:

  • I’ve added pages for each Hermit which contain…
    • … an image of the Hermit’s Minecraft skin.
    • … the Hermit’s social media links.
    • … a time comparison widget which allows users to enter a time for one Hermit to see what time that is for another.
    • … a list of memorable quotes from that Hermit.
    • … a list of other Hermits in the same time zone, referred to as ‘local’ Hermits.
  • Improved the infrastructure of the website to handle high volumes of traffic at higher speeds.
  • Improved accessibility implementations, ensuring the site can be used by anyone regardless of access requirements.

Time comparison widget

This widget is built using Livewire. Livewire is a great package for Laravel (the framework on which the website is built) which allows reactivity without any Javascript code. While I love working with Javascript, I’m a PHP developer through and through. Using Livewire enables me to build modern components with incredible speed compared to the traditional backend API to client-side Javascript approach.

This widget has brought some real functionality to HermitClock, and is only the first step in a suite of useful time-focused tools I’m hoping to add.

Improving infrastructure

When HermitClock received its initial burst of traffic and popularity, it buckled quickly under the pressure of a few thousand simultaneous requests. To combat this from happening again I’ve made many changes, but here are the biggest / most impactful:

  • Media is hosted in a storage bucket instead of within the Laravel code repo.
  • The Cloudflare caching configuration has been optimised to reduce server load, resulting in an average of over 90% cache hits in all traffic.
  • Reviewing the logs from the initial crash, I saw the issue was due to Linux capping the number of simultaneous file reads that can happen at once. I’ve upped that limit drastically and also increased the maximum number of PHP workers within PHP-FPM.

Improved accessibility

I’m dedicated to learning about best practices for accessibility. I want to ensure that anybody using my websites (and this isn’t limited to just HermitClock) can do so effortlessly. Every single button and interactive element on HermitClock has been labelled, structured, and tested to ensure that screen readers correctly parse the information and that all elements are easily useable without ever touching a cursor.

I’m sure there are still many accessibility features I don’t know about yet, and they change every day, so this will be something I’m keeping in mind with every update.

Plans for HermitClock’s June 2024

Development

May was a month of building foundations. After putting in a lot of work, I’m happy to say that the shackles are off. Here’s what I’ve got planned, and hope to deploy throughout June 2024 for HermitClock:

  • A widget to allow you to convert your local time to that of a Hermit, and visa-versa.
  • A feed of recent video uploads for Hermits.
  • A real-time indicator as to whether a Hermit is currently live streaming.
  • Full on-page SEO for all pages, allowing more users to find the website organically via search engines.
  • Dedicated pages for all time zones, allowing you to see only a select group of Hermits.
  • Social share buttons throughout all pages, encouraging users to ‘spread the word’.

Brand

Another developer within the Hermitcraft community made a website called hermitcraft-horns.com. Scott and I started talking through Reddit and decided to help support each other’s works. We’ve offered feedback and suggestions for our respective products, and have even added banners to encourage users to visit each other’s sites. This has been a really fun collaboration for me, and I’ve really valued making that connection.

Over the next few weeks, I’m going to be looking out for other fan-made products or creators to build relationships with. I believe that mutually beneficial collaborations like this will be the key to securing HermitClock’s place as a beloved tool for years to come.