Always use pnpm instead of npm for all package management tasks:
- Use
pnpm installinstead ofnpm install - Use
pnpm add <package>instead ofnpm install <package> - Use
pnpm add -D <package>instead ofnpm install --save-dev <package> - Use
pnpm remove <package>instead ofnpm uninstall <package> - Use
pnpm run <script>instead ofnpm run <script> - Use
pnpm <command>for any other npm commands - Use
pnpm dlx <command>instead ofnpx <command> - Use
pnpm create <template>instead ofnpm create <template>
When running scripts from package.json, always use:
pnpm devfor development serverpnpm buildfor production buildpnpm run testfor running testspnpm lintfor lintingpnpm typecheckfor type checkingpnpm formatfor code formatting
For database-related tasks:
pnpm db.generateto generate database migrationspnpm db.local.migrateto apply local migrationspnpm db.prod.migrateto apply production migrations
Never use npm, yarn, or any other package manager in this project. All package operations should be performed with pnpm.
This project uses TanStack Start. The root route is at src/route/__root.tsx.
Here's the tech stack:
- framework: TanStack Start (
@tanstack/start) withreact - router: TanStack Router (
@tanstack/router) - ui:
shadcn/ui - css:
tailwindcss(v4)
We use vitest for the tests.
All tests are in __test__/.
- NEVER run the dev server (e.g.:
pnpm dev)! - always ensure no formatting/linting issues exist in your code
- this command automatically fixes these issues where possible:
pnpm check --fix
- this command automatically fixes these issues where possible:
- NEVER deploy anything (e.g. with
pnpm preview.deploy, orpnpm run deploy)
- Prefer functions over arrow functions for React components and everything else
- Prefer
type-s overinterface-s