July 2026
AI Image Generator now runs on RTX GPU first, with automatic fallback
The image generator tries an on-demand RTX 3060Ti box first (faster renders, powered on only when needed) and falls back to the always-on Apple M4 Mac Mini if it's offline, with a health check cached for a minute so the switch never adds noticeable latency. A pre-flight VRAM check avoids overloading a shared GPU, and the UI now shows which hardware actually rendered each image.
Open related surface →June 2026
Unique social preview cards for every page
Every route now generates its own Open Graph image from a shared branded template. Blog posts show their title, date, and tags; section pages show their name and summary. Links shared to LinkedIn, X, or Slack get a relevant preview instead of one generic card.
Open related surface →June 2026
Collapsible "In this post" outline + cleaner read-aloud
Blog posts gained a collapsible table of contents, built from each article’s headings as categories and subcategories, that now appears on every post. The read-aloud panel moved to its own full-width row so it no longer crowds the share buttons.
Open related surface →June 2026
Navigation and layout polish
The light/dark toggle now stays visible in the navbar at every width, the gap below the navbar is tighter and consistent across pages, the gallery zoom keeps each image’s real proportions, and the homelab dashboard no longer shows a stray horizontal scrollbar.
Open related surface →June 2026
Runtime upgraded to Node 22 and vulnerability cleanup
The container base image moved to Node 22 (current LTS) and several reported runtime errors were fixed, including a hydration mismatch on the AI tools page and an invalid-URL navigation bug.
Open related surface →May 2026
Global Light Mode Overrides Layer
Added a comprehensive theme-aware styling layer that automatically adapts cards, text, inputs, code snippets, hover states, selections, and interactive graphs to light mode, ensuring perfect contrast and readability across all pages.
Open related surface →