changelog

The version history of nathan-the-system. Semver, manually maintained. Major = era of work · Minor = milestone within era · Patch = iterations.

v5.4.0 — 2026-08-10 (current)

  • Fixed a scroll regression that killed wheel and trackpad input on every page after any in-app navigation. height: 100% on <html> froze Lenis's cached page height, so the scroll limit belonged to whichever page loaded first — measured against production, a 5,476px case study inherited the home page's 188px of travel. Post-mortem at /incidents/scroll-lock-after-navigation
  • Repositioned from "product engineer" to "software engineer". AI-assisted work stays disclosed on every case study, moved out of the headline and into evidence
  • Every route is now reachable by clicking. /status, /availability, /repl, /changelog and /resume previously had no inbound link from anywhere
  • /projects/portfolio rewritten as an infrastructure case study — Docker, the self-hosted deploy path, the CSP trade-off, the streaming REPL service — and five stale metrics corrected, including a claim that six shipped routes were "not yet built"
  • BackStageRate restructured to lead with the 512MB quota work and the security posture rather than the analysis pipeline
  • SSRF guard on nathan.match(url): scheme, port, IP-literal and DNS checks before any fetch, with manual redirect handling
  • No page overflows horizontally at 375px any more
  • lint, typecheck, 118 tests and a full build now gate every deploy — the assertions existed for two months with no runner and no CI step
  • Status colours and page widths moved into @theme; limited used to render in two different colours on the same screen
  • Removed 9 unused dependencies, 2 dead API routes and 450KB of tracked build artifacts

v5.3.0 — 2026-07-31

  • Fixed a production hydration mismatch (React #418) live since at least June 4 — root-caused to client-side date formatting on a statically prerendered page, documented as the site's first post-mortem at /incidents/hydration-mismatch
  • Rebalanced hero, meta copy, and every case study's build section away from leading with "AI-native / orchestrates agents" toward shipped results — the framing research showed getting specifically discounted from junior candidates in 2026, including at AI-native-leaning companies
  • /status now reads real version, uptime, deploy timestamp, availability status, and per-project state instead of a placeholder
  • New /resume — one-page, screen + print, built from the same real data as the rest of the site
  • New /llms.txt, CSP + HSTS headers, Person JSON-LD structured data
  • /availability dates switched to ISO precision

v5.2.0 — 2026-06-07

  • Portfolio shipped at nathandebock.com
  • /repl complete with 8 commands + nathan.match() (Claude Sonnet 4.5, streaming)
  • 4 client case studies live · 5,313 words · 45 GitHub permalinks
  • Meta case study at /projects/portfolio documents the build workflow
  • AI-native positioning surfaced in home and case studies (// build sections)

v5.1.0 — 2026-04-12

  • BackStageRate shipped in production
  • AI pipeline · 7 stages · €0.234 per analysis measured across 212 calls
  • GDPR-aware anonymization · RandomForest feature importance
  • Three-container architecture · solo build in 6 weeks

v5.0.0 — 2026-04

  • Portfolio v0 started — creative direction cross-validated across 4 LLMs
  • CLAUDE.md contract locked · 10 hard rules · 10 anti-patterns

v4.3.0 — 2025-11-15

  • Club Azur Avantages shipped on App Store + Google Play
  • RN/Expo · Supabase · dual-track auth · 5-month solo build

v4.2.0 — 2025-10-21

  • serlei.ch shipped in production
  • Custom in-place CMS · Swiss-first Stripe (CHF) · self-hosted Scaleway

v4.1.0 — 2025-08-21

  • Year abroad started at CSUSM (California)
  • CS446 Cloud Computing · CS471 Intro to AI · MATH264 Linear Algebra

v4.0.0 — 2025-04-07

  • cse-martinez first commit
  • First solo client project deployed to production
  • Hôtel Martinez internal portal · Next.js + MongoDB + S3

v3.0.0 — 2024-09-01

  • 3rd year at Epitech Nice — Programme Grande École
  • Full-stack focus on Next.js + Supabase stack