The Minimal Redesign
3.0.0 · 8/19/2026Archived the View-Master reel homepage and rebuilt the site as a text-first single column, in the spirit of the small personal sites I keep coming back to.
- Single-column layout — One 42rem column, three small pages (home, work, projects) with a tiny history router and view transitions.
- Typography — DM Sans + JetBrains Mono, self-hosted, plus the Lont handwriting font (built from my own handwriting) on page titles.
- Activity tabs — GitHub and Strava heatmaps combined into one toggled panel; Strava loads only when opened.
- Rewritten bio — Home is now a short personal bio with live widgets, instead of a hero and card grids.
- Book bar — /bookbar — the reading shelf returns as collapsible sections with every cover fetched at build time and self-hosted.
- TFT match history — /tft — rank, per-set match history, and a search box so anyone can look up their own NA riot id through the worker.
- Recipes and eats — /recipes — the random recipe generator returns with all nine recipes, and the food photos went from 31MB to under 1MB.
- Patch notes revived — This page — history recovered from the old site so the changelog survives the rewrite.
TypeScript Migration!
2.0.1 · 10/7/2025Captured the TypeScript migration commit alongside the JavaScript cleanup, Tailwind tweaks, and Jest smoke-test fix.
- Legacy JavaScript removal — Deleted redundant .js files now backed by TypeScript implementations.
- Tailwind content scope — Restricted the content glob to .ts and .tsx sources.
- App styles cleanup — Removed stale App.css imports after consolidating styling into styled-components.
- App test import fix — Restored the App import so the render smoke test executes.
Major Codebase Refactoring & Organization
2.0.0 · 9/18/2025Complete codebase overhaul with comprehensive refactoring, performance improvements, accessibility enhancements, and backend organization.
- Shared styled-components system — Centralized design tokens and layouts; eliminated ~200 lines of duplicate styling code.
- Navigation modernization — Replaced window.location.href calls with React Router’s useNavigate().
- Prop validation — Added PropTypes validation across components.
- Utility organization — Created shared formatters and API endpoint helpers to remove duplicates.
- Accessibility — Descriptive alt text, ARIA labels, and semantic HTML throughout.
MCP Integration & Resume Update
1.1.2 · 9/17/2025Added a playground page for the Poke MCP Server project, updated the resume, and made Strava styling consistent.
- Poke MCP Server page — New playground tile for the Twitter-metrics and reminders MCP server, with auto-redirect to GitHub.
- Resume update — Latest professional experience, skills, and achievements.
- Lowercase month styling — Consistent lowercase month names across the Strava page.
- Playground grid — Expanded the grid to six tiles while staying responsive.
Strava Activity Links & Twitter Integration
1.1.1 · 9/13/2025Quality-of-life improvements: clickable activity links and Twitter/X social integration.
- Clickable activity links — Strava activity names open the full activity in a new tab, with external-link icons.
- Twitter/X integration — @ujustgotleid added to the footer and contact dialog.
- Contact dialog — LinkedIn entry shows the handle leiwuhoo instead of generic text.
- Bug fixes — Removed a duplicate footer on the recipes page; fixed home-page tile alignment.
Major Strava Integration Update
1.1.0 · 9/12/2025Complete real-time Strava integration in the playground: webhooks, monthly organization, and heart-rate monitoring.
- Strava integration — Activities sync automatically via webhooks and are organized by month and year.
- Monthly dashboard — Current-month stats: activities, distance, time in motion, and heart rate.
- Activity color coding — Distinct colors per activity type for at-a-glance reading.
- Heart-rate analytics — Average and max heart rate per activity and per month.
- Cloudflare Workers backend — Serverless backend with KV storage, token refresh, and caching to respect rate limits.
TFT Match History Update
1.0.2 · 8/4/2025Added win/loss and placement data to the TFT page, plus caching and rate limiting on the worker to survive Riot’s API limits.
- TFT match history — Match history now works, with placements pulled through the worker.
The First Update
1.0.1 · 7/28/2025The first update to the patch notes system.
- Book bar — A simple bar in the playground showing the books I’m reading and my progress, via the Google Books API.
The Inaugural Patch
1.0 · 7/27/2025The very first version of the patch notes.
- Patch notes system — A dedicated changelog page for all future updates, big and small. I’ve definitely missed the first 2 years of patches but it starts now.