Website Revisions
Last Edited: Sun Jul 13 02:11:58 UTC 2025
As of today I made some pretty big revisions to my website. It's a series of little changes that I think culminates in something larger:
- Support rel-me and other indieweb related stuff
- Add dark mode support
- Fix chess piece movement glitch when tabbing away
- Fix chess pieces landing on each other
- Re-style blog page
- Add tags to blog post cards
- Expand text on homepage
- Add scrolling top bar with: Anki integration, link to RSS feed, now-reading book, recently read manga
- Add RSS feed to blog
I think that sums it up. Overall I'm honestly quite proud of how it has expanded, the dark-mode support was really easy to add and the anki sync server + stats is really fun to see. Credit for inspiring this rework goes to my friend Tom who has put in a lot of good work to expand his site.
As for how I did these things, most of them were CSS tweaks and js tweaks. Adding the Now Reading support was incredibly simple due to how I have my database and admin panel set up, as was adding the tags to the blog post cards.
The scrolling top bar was the most significant change. Integrating my Anki flashcard counts required me to set up an anki syncing server. This turned out to be more difficult than I thought, but it brings me comfort knowing that my anki flashcards are safely synced up to my own VPS instance and backed up my me, rather than stored on someone else's server. Anyways, I query the anki sync database directly, but because it's locked I copy the db into a tmp directory so that I can bypass the read lock. Doing this every time the page loads would be wasteful, so I have a clojure atom that serves as essentially a cache timer and refreshes on the pageload if it's older than 15 minutes.
I have a similar setup with the MyAnimeList integration, but the atom holds a :title and :time that gets refreshed if it's older than 15 minutes.