2026-04-05

  • Migrated web stack from Debian VM to Docker.

2025-09-30

  • Migrated my old word document archive to this website.

2025-08-23

  • Optimizations continue. Homepage is now 19.3kB. Blog is 21.0kB.
  • Removed Montserrat as it needed to be transferred to the client. Switched to Consolas which should be available on all operating systems.

2025-08-09

  • Major optimization overhaul, automated JS/CSS minifiy and reduced total requests per page by at least 25%
  • All pages are now under 50kB transfer-size (minimum 30% reduction)
  • Made fonts slightly thinner

2025-07-20

  • Removed PrismJS and replaced with keylighter for server-side code highlighting to remove reliance on Cloudflare CDN. Significantly reduces page load time and improves performance.
    import requests
    print("It seems to work fine")

2025-06-24

  • Small cleanup to dead code in post handler

2025-05-31

  • Added support for unlisted posts

2025-05-30

  • Fixed mobile layout for blog index

2025-05-25

  • Fix image centering for any sized image
  • Support custom image sizing via custom markdown processing: ![caption](/path/to/image.png){50%}
  • Increase width from fixed pixel sizing to 60vw
  • Create (and backdate) changelog file
  • Update scrollbar styling to use shared roots
  • Moved common CSS rules from various pages into a shared CSS file
  • Externalized page-specific CSS from /index.html to /assets/css/main-index.css
  • Externalized page-specific CSS from /colors/index.php to /colors/css/colors.css
  • Externalized page-specific CSS from /banned/index.php to /banned/css/banned.css
  • Externalized page-specific CSS from /error.php to /assets/css/error.css
  • Externalized page-specific JavaScript from /index.html to /assets/js/main-index.js
  • Externalized page-specific JavaScript from /colors/index.php to /colors/js/colors.js, passing PHP data via a global JS object.
  • Externalized page-specific JavaScript from /banned/index.php to /banned/js/banned.js.
  • Externalized page-specific JavaScript from /error.php to /assets/js/error.js.
  • Consolidated blog CSS:
    • Merged /blog/css/password-protection.css into /blog/css/blog-post.css.
    • Centralized common tag styling into /blog/css/blog.css.
    • Cleaned /blog/css/blog.css of rules now in /assets/css/shared.css.
  • Consolidated blog JavaScript:
    • Merged /blog/js/blog-filter.js into /blog/js/blog-index.js.
    • Merged /blog/js/password-protection.js into /blog/js/blog-post.js and moved its CSS keyframes to /blog-post.css.
    • Moved "Copy" button logic from /blog/js/blog.js to /blog/js/blog-post.js and de-duplicated.
    • Created /assets/js/utils.js for shared utility functions like isInViewport.
  • Added timeline-view-class to the posts container in /blog/index.php to activate the timeline-specific styles that handle the center line and post positioning.
  • Fixed container width conflict in /blog/css/blog.css, to ensure that the timeline has the correct width while preserving to 60vw width for other blog pages.
  • Fixed a bug in /blog/js/blog-index.js where timeline branches weren't fading out properly during filtering because it was using dot.style.opacity instead of branch.style.opacity.
  • Fix hardcoded box-shadow value in /assets/css/error.css to use primary accent color from roots.

2025-05-23

  • Replace ThreeJS with custom Canvas API particle system
  • Support multi-coloured particle effects
  • Cleanup dependencies

2025-05-22

  • Consistent styling across all pages (exception for /colors as this is a sandbox page)
  • Remove all server-side blog filtering, all post filtering is now handled client-side
  • Improve filter transition states
  • Fix regression allowing direct read access to blog posts without authentication
  • Add testing for direct read access to blog post markdown files

2025-05-21

  • Support sorting for posts made on the same day via sort metadata
  • Fix index tag selection
  • Move from card-based to timeline-based blog index

2025-05-20

  • Implement authentication for specific blog posts
  • Proper authentication session state management

2025-05-19

  • Support proper syntax highlighting for code blocks
  • Initial creation