Technology Stack (Frontend Standard)
This document defines the standard technology stack for Flow Create Solutions frontend projects.
Core framework
- Next.js: App Router (required)
- React: (as used by Next.js)
- TypeScript: required (no new JS-only projects)
Styling
- Tailwind CSS: required
- No default external UI library (e.g., no MUI/Chakra/shadcn by default). Build and maintain a project’s reusable components in
src/components/.
Data & forms
- TanStack Query (React Query): standard for client-side caching and async state (when client fetching is needed).
- React Hook Form + Zod: standard for forms and runtime validation.
- Client state: React state + context by default (introduce a state library only when justified and documented).
BFF architecture (required)
Frontends must follow a Backend-for-Frontend (BFF) shape:
- The browser talks to the Next.js app over same-origin endpoints.
- Next.js Route Handlers proxy to backend services.
- Authentication credentials (JWTs) are stored in HttpOnly Secure cookies and are read server-side only.
See the Frontend Architecture and Security sections for the complete boundary and flow.
Package management and version pinning (required)
Package manager
- npm only.
package-lock.jsonis required and must be committed.
Node version pinning (single source of truth)
Each repo must make the supported Node version obvious and consistent across dev + CI.
Acceptable patterns (pick one and document it in the repo):
.nvmrc(common), orpackage.jsonengines.node
Rule: Do not introduce multiple competing version sources without explicitly documenting an intentional transition.
Code quality toolchain (required)
- Formatter: Prettier
- Linter: ESLint
- Type check:
tsc
Rule: these checks must run in CI for every PR.