Development
Dependency Policy
How ByteBite manages dependency versions at bootstrap stage.
Dependency Policy
Principles
ByteBite uses current stable dependency majors at bootstrap stage. This is intentional: the repository has no released product functionality yet, so now is the best time to align with current stable releases and official documentation.
- Prefer current stable majors unless there is a concrete, documented incompatibility.
- Do not run blind automated major upgrades (
pnpm update -r --latestwithout review). - Official documentation is authoritative for setup and migration (especially Fumadocs, Next.js, Tailwind, shadcn/ui, Drizzle, Better Auth).
- Pinned versions live in
pnpm-lock.yaml;package.jsonranges use^for patch/minor flexibility within the chosen major. - No beta, alpha, rc, canary, or experimental releases unless explicitly required and documented.
Runtime baseline
| Tool | Version | Notes |
|---|---|---|
| Node.js | 24 LTS | Current supported LTS; satisfies Fumadocs (22+), Next.js, Vite, Fastify, pnpm |
| pnpm | 12.x | packageManager field in root package.json |
| TypeScript | 5.9.x | Latest stable 5.x (not 7.x pre-release) |
Upgrade process
- Inventory direct dependencies across all workspace
package.jsonfiles. - Check latest stable version via registry (
pnpm view <pkg> version). - Read official migration notes for major upgrades.
- Upgrade deliberately, one area at a time if needed.
- Run the full validation suite:
pnpm install --frozen-lockfile, format, lint, typecheck, test, build, Docker stack. - Document any deliberate version exceptions with reason and revisit date.
Dependency versions are implementation details
Package versions are not recorded in ADRs unless a major version represents an architectural constraint (e.g. "we use PostgreSQL" is architectural; "we use drizzle-orm 0.45" is not).
Security
Run pnpm audit periodically. Fix straightforward issues caused by stale versions. Do not apply force fixes without understanding reachability.