--- description: trackgo-fe monorepo map — apps, packages, where to develop alwaysApply: true --- # trackgo-fe Overview pnpm + Turborepo monorepo. Work from the repository root. Package manager: `pnpm@8.15.6`. ## Where to work | Role | Path | Notes | |---|---|---| | **Product development** | `apps/web/` | Primary app — features, auth, modules | | **Component / API reference** | `apps/showcase/` | Living demos of `@repo/*` usage — copy patterns, do not ship product here | | **User documentation** | `apps/docs-dev/` | VitePress user guides (`pnpm dev:docs-dev`) — features and usage only; do not add developer architecture pages | | **Technical documentation** | sibling `trackgo-be/docs/` | MkDocs / TechDocs — stack, architecture, how to run (web, landing, mobile, backend) | | Shared UI / forms / foundations | `packages/ui` → `@repo/ui/*` | | | HTTP, data services, telemetry | `packages/core-api` → `@repo/core-api/*` | | | Storage | `packages/core-storage` → `@repo/core-storage` | | | i18n | `packages/core-i18n` → `@repo/core-i18n` | | | Events | `packages/core-events` → `@repo/core-events` | | | Shared utilities | `packages/utils` → `@repo/utils` | | | Brand assets | `packages/brand` → `@repo/brand` | | | Tooling configs | `packages/configs` | ESLint + TypeScript bases | | Desktop wrapper | `apps/desktop/` | Embeds `apps/web` via Electron | | Landing | `apps/landing/` | Marketing SPA only | ## Hard rules - Implement product features in `apps/web`, not in `showcase` or `docs-dev`. - Before inventing UI or package usage, match `apps/showcase` demos (component/API shape). User workflows: `apps/docs-dev`. Technical FE architecture: sibling `trackgo-be/docs/`. - Prefer `@repo/ui`, `@repo/core-*`, `@repo/utils` over app-local duplicates or raw Mantine/axios. - Env files live **inside the app** (`apps/web/.env*`), never at monorepo root. Read env via `src/core/environment` (`ENV`), not `import.meta.env` in components. - Run scripts from root: `pnpm dev:web`, `pnpm dev:showcase`, `pnpm lint`, `pnpm typecheck:web`, `pnpm test`, `pnpm test:e2e:web`, `pnpm check:all`. ## Import map (preferred) ```ts import { Button, Text } from '@repo/ui/components'; import { FieldTextInput } from '@repo/ui/form'; // or @repo/ui/components import { EnterpriseModuleProvider } from '@repo/ui/foundations'; import { compose, required } from '@repo/ui/validators'; import { createHttpClient } from '@repo/core-api/http-client'; import { CommonRemoteDataServices } from '@repo/core-api/data-services'; import { useTranslation, Trans } from '@repo/core-i18n'; ```