Skip to content

Installation

This guide will help you set up the Cosella development environment on your machine.

  • Node.js: v22.0.0 or higher (recommended: v22.x LTS)
  • pnpm: v9.0.0 or higher
  • Git: v2.30.0 or higher
Terminal window
git clone https://github.com/cosella/cosella.git
cd cosella
Terminal window
pnpm install
Terminal window
pnpm typecheck
pnpm lint
pnpm test
Terminal window
pnpm dev
Terminal window
# Dashboard (sales rep UI) — port 5173
pnpm --filter @cosella/dashboard dev
# Admin panel — port 5174
pnpm --filter @cosella/admin dev
# Documentation site — port 4322
pnpm --filter @cosella/docs dev
# Marketing site — port 4321
pnpm --filter @cosella/marketing dev
# Storybook (component library) — port 6006
pnpm --filter @cosella/storybook dev
Terminal window
# Build all packages and apps
pnpm build
# Build a specific app
pnpm --filter @cosella/dashboard build
Terminal window
# Run all tests
pnpm test
# Run tests for a specific package
pnpm --filter @cosella/ui test
# Run tests with coverage
pnpm test -- --coverage
Terminal window
pnpm gen component

This creates:

  • packages/ui/src/<kebab-name>/<Name>.tsx
  • packages/ui/src/<kebab-name>/<Name>.test.tsx
  • Export added to packages/ui/src/index.ts
Terminal window
pnpm gen package

This creates:

  • packages/<name>/package.json
  • packages/<name>/tsconfig.json
  • packages/<name>/src/index.ts
Terminal window
pnpm gen:api

Regenerates packages/api-client/src/api.gen.ts from the OpenAPI spec.

Install the following extensions:

  • ESLint (dbaeumer.vscode-eslint)
  • Prettier (esbenp.prettier-vscode)
  • Tailwind CSS IntelliSense (bradlc.vscode-tailwindcss)
  • TypeScript Importer (ms-vscode.vscode-typescript-next)
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"typescript.tsdk": "node_modules/typescript/lib"
}

If you see EADDRINUSE errors, stop any running dev servers:

Terminal window
# Find and kill processes on the port
lsof -ti:5173 | xargs kill -9

Run typecheck to identify issues:

Terminal window
pnpm typecheck

Run the linter to fix formatting:

Terminal window
pnpm lint --fix

Clean and rebuild:

Terminal window
rm -rf node_modules/.cache
rm -rf apps/*/dist
pnpm build