Contributing
How to propose and land a change on the platform itself
Workflow
- Fork/branch, make your change.
- Run the checks locally before opening a PR:
pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run build- Open a pull request. CI runs the same checks.
Conventions
- Strict TypeScript — avoid
any; preferunknown, interfaces, and generics. - Business logic (XP, badges, missions, leaderboards, mentorship) lives in
packages/database/src/servicesso it's reusable outsideapps/webtoo. - Never hardcode badges or missions in application code — they're rows in the
Badge/Missiontables (seepackages/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_nameAdding a UI primitive
shadcn/ui components live in apps/web/components/ui. Add more with:
pnpm dlx shadcn@latest add <component> -c apps/web