feat(web): scaffold React + Vite + TypeScript app with shared layout, auth, and API client #7
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 1 of #6 — Frontend Migration
Goal
Set up the React + Vite + TypeScript project in
web/, establish the shared infrastructure that all pages will use, and serve it alongside the existing Go templates so both can run during the transition.Tasks
Project Setup
web//api/*to Go backend (port 8080)web/build targets to Makefile (make web-dev,make web-build)web/dist/static files at a prefix (e.g./app/) during transitionweb/to.gitignorefornode_modules/,dist/Catppuccin Mocha Theme
Auth Integration
useAuthhook that callsGET /api/auth/meto get current user/roleAuthProvidercontext for app-wide auth stateLoginPagecomponent (username/password form, OIDC redirect button)API Client
web/src/api/) with fetch wrapperRouter and Shell
/,/projects,/schemas,/audit,/settings,/loginAppShelllayout component with navigation bar matching current 4-tab designPlaceholder Pages
Acceptance Criteria
npm run devstarts Vite dev server, proxies API calls to Go backendnpm run buildproduces static assets inweb/dist/Dependencies
None — this phase is independent of the Go templates. Both old and new UIs can coexist.