Release notes

Changelog

What's new around here - every version, newest first.

1.16

  • Blog posts now run newest first everywhere - the index, the feed, and "read next" agreed on three different orders before
  • The featured story on the home page is pinned deliberately instead of following whatever published last
  • The header and its navigation now render without JavaScript
  • The not-found page suggests the closest matching page
  • Search keeps focus inside the dialog and hands it back to the button that opened it
  • Toggles and checkboxes now report their state to screen readers
  • Scroll handling collapses into a single frame per update, so the header and table of contents no longer fight the smooth scrolling
  • One easing curve and one set of colour steps across the site, instead of thirty-two hand-typed copies

1.15

  • Staged the homepage entrance: the mascot reveals first, the header and credit follow a beat later
  • Reworked the header - transform-based hide/reveal and a unified responsive nav
  • Retired the "neural expressive" layer (the ambient breath pulse)
  • Error and system pages now render on the fabric-shader console screen
  • Blog posts gained reading time, a table of contents, and their own Open Graph cards
  • Keyboard focus no longer draws a ring - focused elements mirror their hover state instead
  • Removed unused components, the Satoshi font family, and the background video (~32 MB lighter)
  • More comfortable spacing on small screens

1.14

  • Blog posts now live as MDX files rendered through a single statically generated route
  • Added this changelog page
  • Added an Open Graph share image and an RSS feed for the blog
  • Proof-of-work challenges are now signed by the server, and posting to the message wall requires having passed the gate
  • Page content is now part of the server HTML, so the site is readable by search engines and without JavaScript
  • Added a Content-Security-Policy and tightened the other security headers
  • The contact backdrop no longer reads pixels back from the GPU and now respects reduced-motion preferences
  • Removed the unused /d design-library page and several unused dependencies
  • Accessibility pass: form labels, status announcements, progress semantics, and keyboard focus fixes

1.13.1

  • Added the owner moderation console at /admin
  • Every admin API request re-checks the owner server-side, so a forged cookie or direct call gets a 403

1.13

  • Added the "say hi" message wall on the home page - post as a guest or sign in with Google
  • Split the site chrome into a route group so error pages render bare
  • Rebuilt the contact page on the painterly fluid-shader backdrop

1.12

  • Added the ambient "breath" pulse that plays once the site reveals
  • Added Lenis smooth scrolling
  • Polished the loading overlay with a live hash-rate readout

1.11

  • Site-wide visual polish: blur-up images, search, and refined blog, project, and contact layouts

1.1

  • Added the proof-of-work load gate that deters drive-by scrapers
  • Laid the Supabase and Google OAuth foundations
  • First public structure: blog, projects, and contact