Olgax Docs

Contributing

How to propose and land a change on the platform itself

Workflow

  1. Fork/branch, make your change.
  2. Run the checks locally before opening a PR:
pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run build
  1. Open a pull request. CI runs the same checks.

Conventions

  • Strict TypeScript — avoid any; prefer unknown, interfaces, and generics.
  • Business logic (XP, badges, missions, leaderboards, mentorship) lives in packages/database/src/services so it's reusable outside apps/web too.
  • Never hardcode badges or missions in application code — they're rows in the Badge / Mission tables (see packages/database/prisma/seed.ts).
  • Keep components focused (ContributorCard, ProjectCard, not one giant dashboard component).
  • Comments should explain why, not what — the code should already say what it does.

Adding a database change

# edit packages/database/prisma/schema.prisma, then:
pnpm --filter @olgax/database exec prisma migrate dev --name your_migration_name

Adding a UI primitive

shadcn/ui components live in apps/web/components/ui. Add more with:

pnpm dlx shadcn@latest add <component> -c apps/web

On this page