Changelog
Version history for ecn.dev
v2.8.2
(core) Record which phases of the project-surfaces work shipped, and why cover images are still blocked.
v2.8.1
(core) Add Timeline, Figure and Gallery components for project write-ups.
(core) Fail the build when an image used in a project write-up is larger than it will ever render.
v2.8.0
(core) Show weekly commit activity on each project — a half-year on the card, the full year on the project page.
v2.7.3
(core) Stop project cards overflowing their column on phones — long commit headlines were widening every card by up to 150px.
(core) Stop the header wordmark and navigation colliding on narrow screens.
v2.7.2
(core) Wait for Cloudflare's edge to serve the new build before smoke-checking it, so the deploy gate stops reporting false failures.
v2.7.1
(core) Restore the detail page for starred projects, which 2.7.0 removed: the Featured card linked to a 404.
v2.7.0
(core) Add a Featured section so a project can be highlighted even when it has not been touched recently, starting with FamilyChat.
(core) Give project cards a short written tagline instead of the first three clamped lines of the description.
(core) Give project cards their own keyboard focus ring rather than relying on the browser default.
v2.6.0
(core) Publish three client and employer projects with neutral descriptions that name the contribution rather than the client's product.
(core) Rewrite seven thin project descriptions and override two that could not be fixed at their source.
v2.5.0
(core) Publish 28 projects, up from 20, from a hand-picked selection across the full repository list.
(core) Let a project's MDX override or suppress the homepage link its repository declares.
(tooling) Stop the smoke check from treating canonical tags as links, which produced false 404s against localhost.
v2.4.2
(seo) Give every page title the same suffix; /projects rendered a bare "Projects" in the browser tab.
(core) Extract the shared page shell, which was byte-identical across three page files.
(ci) Add a post-deploy smoke check covering routes, headings, metadata, link resolution and registry invariants.
v2.4.1
(core) Shrink the avatar from 949KB to 42KB; it was the entire image weight of the site and loaded on every page.
v2.4.0
(pages) Give every project its own page, showing GitHub data by default and any MDX details or writing that exist.
(core) Add Objectively, Keymorph and Snippets — the three V1 case studies that never migrated.
v2.3.4
(tooling) Mark a detail: commits setting as inert in projects:sync when the repo sits outside the Current window.
v2.3.3
(core) Correct the README, which claimed Vercel hosting, Google DNS and analytics that are not installed.
v2.3.2
(core) Reconcile the agent brief and the projects design record with what actually shipped.
v2.3.1
(tooling) Make projects:sync discover repos across every affiliation and rank by the same measure the site uses.
v2.3.0
(homepage) Source the front page from the projects registry so it shows current work instead of a single case study.
(seo) Add /projects to the header navigation and the sitemap; it previously had no inbound link at all.
v2.2.2
(pages) Stop private project cards from linking to a GitHub 404; they now lead to the project's own site or render without a link.
v2.2.1
(core) Source project commit counts from per-repo history so the build runs on a narrowly scoped token instead of one with org-admin rights.
v2.2.0
(pages) Add /projects — a contribution graph plus a Current/Past split that reorders itself from live GitHub activity.
(core) Describe and publish four more projects: treasure-hunters, conjure, friendGroup, and MacFaceKit.
(infra) Rebuild and redeploy daily so the projects page refreshes without a push.
v2.1.11
(core) Add the registry-to-GitHub merge layer that splits projects into Current and Past, bucketing on push recency and ranking on commit volume.
v2.1.10
(tooling) Add `npm run projects:sync` — ranks every repo with recent commits by volume and marks each against the content/projects.yaml show list.
(core) Record the projects page design, including the measurements that ruled out the GitHub Events API as an activity source.
(release) Resync package.json to the version.ts source of truth after a silent three-version drift.
v2.1.6
(security) Clear npm audit findings with patched dependency resolution and a js-yaml frontmatter parser.
(tooling) Update Biome configuration and package overrides for current lint and build gates.
v2.1.5
(release) Render footer and changelog dates from date-only release metadata instead of build-time timestamps
v2.1.4
(ci) Clean repo-wide Biome lint failures in resume audit scripts, job utilities, and resume HTML
v2.1.3
(seo) Add route canonicals, changelog sitemap coverage, audit noindex metadata, and a favicon for Cloudflare production readiness
v2.1.2
(domains) Restore valid HTTPS certificate on www.ecn.dev (now 308-redirects to ecn.dev)
v2.1.1
(resume) Add print-ready single-page resume served at /resume
(resume) Rebuild experience bullets for senior Product Designer audience with verified numbers
(repo) Gitignore research/ dossier (PII, paystubs, W-2s, proprietary client work)
v2.1.0
(meta) Add dynamic Open Graph and Twitter preview image via next/og
(mdx) Validate MDX project frontmatter with zod at parse time
(cleanup) Remove dead dependencies (framer-motion, posthog-js) and dormant PostHog wiring
(cleanup) Remove one-shot archive migration scripts and dead exports
(repo) Remove iCloud sync duplicates and guard against recurrence
(reconcile) Rewrite README for current stack, archive stale audits, add CLAUDE.md
v2.0.0
(core) Portfolio V2 launch — Next.js 15, React 19, MDX, shadcn/ui
(infra) Add Biome linter, version infrastructure, Husky hooks, CI/CD
(homepage) Split-panel layout with sticky sidebar, work timeline, and cream aesthetic
(data) Add structured profile, work history, and social links data
(pages) Add changelog page with version history and type badges
(analytics) Add PostHog cookieless analytics with DNT respect