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
/ddesign-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
