- Monorepo managed by Yarn 4 (Berry) workspaces
apps/web— Next.js web app (main product)apps/admin— Next.js admin panelapps/electron— Electron desktop apppackages/auth-core— Shared auth package
- Yarn 4 — use
yarncommands, NOTnpmorpnpm yarn workspace <name> <cmd>to run workspace-specific commandsyarn installto install dependenciesyarn workspace web typecheckto check types
- Components live in
apps/web/registry/new-york-v4/ui/ - Chart demos live in
apps/web/registry/new-york-v4/charts/ - To add/update components:
yarn dlx shadcn@latest add <component-name> --overwrite - To update multiple:
yarn dlx shadcn@latest add comp1 comp2 comp3 --overwrite - shadcn CLI may pin dependency versions (remove
^) or change versions — reviewpackage.jsonafter running - shadcn CLI installs to default path; if components are in a custom directory, you may need to move files after
- Use
npx npm-check-updates --workspacesto check for outdated dependencies across all workspaces - Use
yarn npm auditto check for known vulnerabilities - For TypeScript major upgrades: run
npx @andrewbranch/ts5to6 --fixBaseUrl <tsconfig>and--fixRootDir <tsconfig>to verify config compatibility - When upgrading packages that have shadcn wrappers (recharts, react-day-picker, react-resizable-panels), update via
yarn dlx shadcn@latest add <component> --overwriteto get compatible wrapper code - Always run
yarn workspace web typecheckafter upgrades to catch breaking changes - Prefer
^prefix for dependency versions in package.json
- All git commits, PR titles, and branch names must be in English
- TypeScript strict mode is enabled across all workspaces
- ESLint with flat config (
eslint.config.mjs)