| Area | Value | Evidence |
|---|---|---|
| Primary language | TypeScript / TSX | package.json, tsconfig.json, app/, components/ |
| Runtime + version | Next.js 16.2.9 and React 19.2.3; Node.js v18+ (v24.12.0 in local dev) | package.json, next.config.ts |
| Package manager | pnpm | pnpm-lock.yaml, pnpm-workspace.yaml |
| Module/build system | Next.js App Router with TypeScript, ESLint flat config, and React Compiler | app/, next.config.ts, eslint.config.mjs, tsconfig.json |
| Dependency | Version | Role in system | Evidence |
|---|---|---|---|
livekit-client |
^2.21.0 |
WebRTC video/audio client SDK | package.json, hooks/use-video-call.ts |
@livekit/components-react |
^2.9.23 |
LiveKit video/audio UI components | package.json, components/call/* |
@livekit/components-styles |
^1.2.0 |
LiveKit UI default component styling | package.json, components/call/* |
lucide-react |
^0.563.0 |
UI vector icon package | package.json, components under components/ |
next |
16.2.9 |
App framework and routing | package.json |
react / react-dom |
19.2.3 |
UI runtime | package.json |
next-intl |
^4.8.2 |
Locale routing and translations | package.json, i18n/*, app/[locale]/* |
@tanstack/react-query |
^5.90.20 |
Server state, caching, invalidation | package.json, components/ui/query-provider.tsx, queries/*, hooks/mutations/* |
@dnd-kit/react |
^0.3.2 |
Drag and drop UI react integration | package.json, components/canvas/board/* |
@dnd-kit/dom |
^0.3.2 |
Drag and drop DOM event handlers | package.json, components/canvas/board/* |
socket.io-client |
^4.8.1 |
Realtime chat connection | package.json, lib/api/chat.ts |
zustand |
^5.0.11 |
Client UI state store | package.json, lib/store/use-dashboard.ts |
sonner |
^2.0.7 |
Toast notifications | package.json, components/ui/sonner.tsx, components/dashboard/layout/* |
@tanstack/react-table |
^8.21.3 |
Tabular UI data rendering | package.json, components/canvas/backlog/* |
@tanstack/react-form |
^1.28.0 |
Form state and validation | package.json, components/dashboard/comp/* |
zod |
^4.3.6 |
Schema validation | package.json, components/dashboard/comp/* |
framer-motion |
^12.40.0 |
Motion animations | package.json, components/dashboard/layout/NavigationSidebar.tsx |
date-fns |
^4.1.0 |
Date formatting and manipulation | package.json, lib/format-date.ts |
class-variance-authority |
^0.7.1 |
Component style variant management | package.json, components/ui/button-variants.ts |
clsx |
^2.1.1 |
Conditional CSS class builders | package.json, components under components/ |
emojilib |
^4.0.3 |
Emoji dictionary dataset | package.json, components/dashboard/chat/EmojiPicker.tsx |
next-themes |
^0.4.6 |
Light/dark mode provider & hooks | package.json, components/ui/theme-provider.tsx |
radix-ui |
^1.4.3 |
Accessible UI primitives package | package.json, components under components/ui/ |
react-day-picker |
^9.14.0 |
Date picking interface component | package.json, components/ui/calendar.tsx |
shadcn |
^3.8.2 |
CLI orchestrator metadata wrapper | package.json, components.json |
tailwind-merge |
^3.4.0 |
Dynamic class conflict merging | package.json, lib/utils.ts |
tw-animate-css |
^1.4.0 |
Standard CSS keyframe animation set | package.json, app/globals.css |
| Tool | Purpose | Evidence |
|---|---|---|
eslint |
Linting | package.json, eslint.config.mjs |
eslint-config-next |
Next.js lint rules | package.json, eslint.config.mjs |
typescript |
Type checking | package.json, tsconfig.json |
@tanstack/eslint-plugin-query |
Query-specific lint rules | package.json, eslint.config.mjs |
@tailwindcss/postcss |
Tailwind PostCSS integration | package.json, postcss.config.mjs |
tailwindcss |
Tailwind CSS v4 framework | package.json, postcss.config.mjs |
babel-plugin-react-compiler |
React Compiler support | package.json, next.config.ts |
vitest |
Unit/integration test runner | package.json, vitest.config.ts |
Note
React Compiler Native Integration: The React Compiler is enabled natively via reactCompiler: true in next.config.ts (leveraging React 19 native optimizations). It analyzes components at build time and automatically caches component results, hooks, and callbacks. Developers should never write manual memoization wrappers (useMemo, useCallback, memo()) as they add redundant overhead and are flagged as issues by static codebase analysis.
pnpm dev # Starts Next.js development server
pnpm build # Compiles production Next.js build
pnpm start # Starts compiled Next.js production server
pnpm lint # Runs ESLint static analysis
pnpm test # Runs Vitest unit and integration test suite
pnpm doctor # Runs React Doctor codebase diagnostics
pnpm audit # Runs production security vulnerability auditing- Config sources:
next.config.ts,proxy.ts,lib/api/api-config.ts,i18n/routing.ts,i18n/request.ts,tsconfig.json,components.json,eslint.config.mjs,vitest.config.ts - Required env vars:
NEXT_PUBLIC_API_URL(backend API endpoint, defaults tohttp://localhost:8000),VERCEL_URL[provided by deployment environment] - Runtime cookies:
session_tokenis read byproxy.ts,lib/api/chat.ts, andlib/api/notification.ts - Deployment/runtime constraints: locale-aware routing is active for
enandvi; API requests are routed through/api-proxy - The environment variable template is documented in
.env.exampleat the workspace root.
package.jsonpnpm-lock.yamlpnpm-workspace.yamlnext.config.tstsconfig.jsoneslint.config.mjscomponents.jsonvitest.config.tsi18n/routing.tsproxy.tslib/api/api-config.tslib/api/api.tslib/api/chat.ts