Skip to content

Zuko Portfolio (michael-engineer.dev)

  owner: Zuko
  first_touched: 2026-05-17
  last_touched: 2026-05-25

Favicon + Desktop Routing + Cache-Bust Deploy — 2026-05-25

source: documentation/activities/portfolio-favicon-routing-2026-05-25.md

Issue

Live address-bar logo on michael-engineer.dev showed old design.

Diagnosis chain

  1. Stale buildpublic/favicon.svg updated 15:45, but dist/ last built at 15:02 (43 minutes earlier). Vite never re-bundled.

  2. Stale deploy — last prod Cloudflare Pages deploy was 5909c0a on 2026-05-20, before the favicon edit.

  3. Browser cache — even after redeploy, browser favicon cache persists across Cmd+Shift+R.

Fixes shipped

  #CommitWhat

    1branding: deepen bg to #0d0f1a + round favicon corners3 SVGs (favicon, apple-touch, og-image)
    2routing: desktop react-router pages + mobile scroll-snap fallbackBrowserRouter wraps App; useIsMobile hook; Nav adapts between Link/anchor; new public/_redirects for SPA fallback
    3favicon: cache-bust href with ?v=2 + sync mask-icon colourAll icon hrefs in index.html get ?v=2 query suffix to force browser refresh

Deploy flow validated

  • deploy-portfolio.command builds + deploys via wrangler pages deploy

  • Wrangler stale cache bug fixed: node_modules/.cache/wrangler/ account-id cache cleared; deploy scripts now rm -rf it on every invocation

Verification

* Cloudflare edge serves new favicon (verified with `curl /favicon.svg`)

* Deep routes (`/experience`, `/projects`, `/about`, `/contact`) all return 200 via SPA fallback

* Browser address bar shows correct logo after cache-bust deploy

◆ hinata · zuko-portfolio · folded from documentation/activities/ phase-19