Monthly Dependency Update Runbook

A repeatable, human-executed checklist for keeping this project's npm dependencies current and its security advisories resolved. No bots, no CI — just this runbook, once a month.

How to use this runbook

Branch & commit conventions

Semver tiering rule

For each row in npm outdated, compare Current / Wanted (max version satisfying the package.json range) / Latest (newest published):

Install commands:

Phased procedure

Phase 0 — Prep

Phase 1 — Patches

Phase 2 — Minors

Phase 3 — Majors (one dep at a time)

For each major-tier dep, one at a time:

Phase 4 — Security audit

Phase 5 — Final verification & merge

Visual check pages

After npm run dev, visit each of these in your browser and confirm layout, Tailwind styling, and Alpine interactions work as expected:

What to look for: page renders without errors, Tailwind classes applied (colors, spacing, container width), Alpine-powered interactions work (search filtering, favourites toggle), no broken layouts or missing styles.

Rollback

Known tricky majors

tailwindcss v4

CSS-first config. Migration touches the current PostCSS-based setup:

The build will likely break the postcss.config.js / css/tailwind.css setup on first bump. This is realistic to defer to a dedicated session rather than attempt inside the monthly runbook. The defer escape hatch in Phase 3 exists precisely for this case.

postcss-preset-env v11

Check the changelog at bump time for stage / preset / breaking option changes. Lower risk than Tailwind v4, but verify CSS output is unchanged by the visual check.

Cadence

Monthly, first week of the month. No calendar automation — this runbook is the process. Git history and the monthly PR description serve as the update log.