Development Workflow
A repo-aligned day-to-day workflow for building features.
Start the app
pnpm compose:dev:uppnpm devOrganize feature code
Typical feature layout (file-based routing):
apps/web/src/routes/_authenticated/feature/├── index.tsx # route: loader + component└── $id.tsx # dynamic route segmentapps/web/src/components/feature/ # UI components (kebab-case)apps/web/src/lib/feature/ # server functions, loaders, schemasCommon naming:
- server functions/actions:
*.functions.ts - schemas:
*.schema.ts - loaders: route
loader, optionally backed by a*.loader.tshelper
When a feature grows beyond the app, extract it into a workspace package under packages/ (e.g. packages/organization/) following the existing split of core (server/services), ui (components), and shared schemas.
When to create a package
Create a shared workspace package only if the code needs a stable boundary or will be reused across apps/packages. Put it under packages/ or an existing grouped family like packages/account/ or packages/organization/.
Suggested flow
- create or update validation schema
- update database code if needed
- add loader or server function
- build UI
- verify with repo checks
Checks
pnpm typecheckpnpm lint:fixpnpm format:fixpnpm test:unitpnpm healthcheck is useful too, but it does not replace pnpm test:unit.
Next: Adding Features →