Each button is a separate image that links to my website, which records the letter, and then redirects you back to GitHub. The top part of the screen is dynamically generated, and you can view it directly here: https://kbd.jse.li/screen.gif
For most use cases, like for CI badges, setting cache-control and etag headers will suffice, but GitHub still caches it (just for a shorter time? I don't know the specifics). Luckily, you can request that they purge their cache for a specific file [0] so I've got a goroutine that calls it once per second [1]