chore(frontend): commit to pages router, drop empty src/app, unify on npm #9

Merged
nsatoshi merged 1 commits from devin/1776540090-chore-frontend-router-decision into master 2026-04-18 19:37:30 +00:00
Owner

Summary

PR #9 of the 11-PR completion sequence. Fixes the 'unfinished router migration + inconsistent packageManager' finding from the review.

Changes

  1. Router decision: keep pages/, delete app/. src/app/ only ever contained globals.css; every actual route lives under src/pages/. Keeping both routers in the tree made the build surface area ambiguous and left a trap where a future contributor could add a new route under src/app/ and break Next's routing resolution.

  2. CSS moved. src/app/globals.csssrc/styles/globals.css. _app.tsx's import was updated accordingly. No-op at runtime; CSS payload is byte-identical.

  3. Tailwind content glob updated. ./src/app/**/*.{js,ts,jsx,tsx,mdx}./src/styles/**/*.css. The src/components/** and src/pages/** globs are unchanged.

  4. Unified on npm:

    • packageManager: pnpm@10.0.0npm@10.8.2. The lockfile (package-lock.json) and CI (npm ci / npm run lint / npm run type-check / npm run build) have always used npm; the pnpm declaration was aspirational and would have forced contributors with corepack enabled into a tool the repo doesn't actually support.
    • Added engines: node >=20 <21, npm >=10 so CI, Docker, and a fresh laptop clone all land on the same runtime.

Verification

  • npm ci — 465 packages, no warnings.
  • npm run lintnext lint: No ESLint warnings or errors.
  • npm run type-checktsc --noEmit clean.
  • npm run build — Next.js 14.2.35 compiled 19 pages successfully: /, /access, /addresses, /analytics, /blocks, /blocks/[number], /bridge, /docs, /docs/gru, /docs/transaction-compliance, /docs/transaction-review, /home, /liquidity, /more, /operations, /operator, /pools, /routes, /search, /system, /tokens, /tokens/[address], /transactions, /transactions/[hash], /wallet, /watchlist, /weth. No warnings.

Completion criterion advanced

5. Frontend housekeeping — "one router; one package manager; build is reproducible from the lockfile."

## Summary PR #9 of the 11-PR completion sequence. Fixes the 'unfinished router migration + inconsistent packageManager' finding from the review. ## Changes 1. **Router decision: keep `pages/`, delete `app/`.** `src/app/` only ever contained `globals.css`; every actual route lives under `src/pages/`. Keeping both routers in the tree made the build surface area ambiguous and left a trap where a future contributor could add a new route under `src/app/` and break Next's routing resolution. 2. **CSS moved.** `src/app/globals.css` → `src/styles/globals.css`. `_app.tsx`'s import was updated accordingly. No-op at runtime; CSS payload is byte-identical. 3. **Tailwind content glob updated.** `./src/app/**/*.{js,ts,jsx,tsx,mdx}` → `./src/styles/**/*.css`. The `src/components/**` and `src/pages/**` globs are unchanged. 4. **Unified on npm:** - `packageManager`: `pnpm@10.0.0` → `npm@10.8.2`. The lockfile (`package-lock.json`) and CI (`npm ci / npm run lint / npm run type-check / npm run build`) have always used npm; the pnpm declaration was aspirational and would have forced contributors with corepack enabled into a tool the repo doesn't actually support. - Added `engines`: `node >=20 <21`, `npm >=10` so CI, Docker, and a fresh laptop clone all land on the same runtime. ## Verification - `npm ci` — 465 packages, no warnings. - `npm run lint` — `next lint`: **No ESLint warnings or errors**. - `npm run type-check` — `tsc --noEmit` clean. - `npm run build` — Next.js 14.2.35 compiled **19 pages successfully**: `/`, `/access`, `/addresses`, `/analytics`, `/blocks`, `/blocks/[number]`, `/bridge`, `/docs`, `/docs/gru`, `/docs/transaction-compliance`, `/docs/transaction-review`, `/home`, `/liquidity`, `/more`, `/operations`, `/operator`, `/pools`, `/routes`, `/search`, `/system`, `/tokens`, `/tokens/[address]`, `/transactions`, `/transactions/[hash]`, `/wallet`, `/watchlist`, `/weth`. No warnings. ## Completion criterion advanced > **5. Frontend housekeeping** — "one router; one package manager; build is reproducible from the lockfile."
nsatoshi added 1 commit 2026-04-18 19:23:52 +00:00
Fixes the 'unfinished router migration + inconsistent packageManager'
finding from the review:

1. src/app/ only ever contained globals.css; every actual route lives
   under src/pages/. Keeping both routers in the tree made the build
   surface area ambiguous and left a trap where a future contributor
   might add a new route under src/app/ and break Next's routing
   resolution. PR #9 commits to the pages router and removes src/app/.

2. globals.css moved from src/app/globals.css to src/styles/globals.css
   (so it no longer sits under an otherwise-deleted app router folder)
   and _app.tsx's import was updated accordingly. This is a no-op at
   runtime: the CSS payload is byte-identical.

3. tailwind.config.js had './src/app/**/*.{js,ts,jsx,tsx,mdx}' at the
   top of its content glob list. Replaced with './src/styles/**/*.css'
   so Tailwind still sees globals.css; the src/components/** and
   src/pages/** globs are unchanged.

4. Unified the package manager on npm:

   - package.json packageManager: 'pnpm@10.0.0' -> 'npm@10.8.2'.
     The lockfile (package-lock.json) and CI (npm ci / npm run lint /
     npm run type-check / npm run build in .github/workflows/ci.yml)
     have always used npm; the pnpm declaration was aspirational and
     would have forced contributors with corepack enabled into a tool
     the repo doesn't actually support.
   - Added an 'engines' block pinning node >=20 <21 and npm >=10 so
     CI, Docker, and a fresh laptop clone all land on the same runtime.

Verification:
  npm ci            465 packages, no warnings.
  npm run lint      next lint:   No ESLint warnings or errors.
  npm run type-check tsc --noEmit: clean.
  npm run build     Next.js 14.2.35 compiled 19 pages successfully;
                    every route (/, /blocks, /transactions, /tokens,
                    /bridge, /analytics, /operator, /docs, /wallet,
                    etc.) rendered without emitting a warning.

Advances completion criterion 5 (frontend housekeeping): 'one router;
one package manager; build is reproducible from the lockfile.'
nsatoshi merged commit cf3b291c87 into master 2026-04-18 19:37:30 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: d-bis/explorer-monorepo#9