Skip to content

feat: frontend scaffold (Vite + React 19.2 + TS strict, eslint flat + prettier + vitest) #21

@constk

Description

@constk

Problem

An empty frontend/ makes the frontend quality gate (#9) unverifiable and hides the React+TS posture from users.

Proposed solution

npm create vite@latest frontend -- --template react-ts (resolves to React 19.2.x, Vite 6.x, TS 5.x as of April 2026). Pin React to ^19.2.0. Set engines.node = ">=24.0.0" in frontend/package.json. Add eslint.config.js (flat config) with eslint-plugin-react, eslint-plugin-react-hooks, @typescript-eslint, max-warnings 0. Add .prettierrc, .prettierignore, vitest.config.ts (jsdom + setup file). Add tsconfig.json with strict: true. NPM scripts: dev, build, preview, lint, format, format:check, check (tsc --noEmit), test (vitest).

Acceptance criteria

  • npm install succeeds on Node 24.
  • npm run build, npm run lint, npm run check, npm run test all exit 0.
  • engines.node = ">=24.0.0" enforced in package.json.
  • React deps pinned to ^19.2.0.

Priority rationale

Critical: anchors the chosen frontend stack and makes #9's frontend jobs runnable.

Depends on

#1

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfrontendReact + Vite frontend scaffold

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions