Working on projects
Day-to-day conventions for contributing to Mladi Pirati projects.
Git workflow
masteris always deployable. Don't push to it directly.- Create a branch for each change, e.g.
feat/member-signuporfix/login-redirect. - Open a pull request and get at least one review before merging.
- Keep PRs small and focused, and explain the why in the description.
Package manager
Use the package manager the repository already uses. You can tell from the lockfile (bun.lock, pnpm-lock.yaml, package-lock.json or yarn.lock). Never mix package managers, and always commit the lockfile.
Secrets and environment variables
- Never commit secrets: no API keys, passwords, S3 keys or client secrets.
- Keep
.env.exampleup to date whenever you add a variable. - Validate environment variables at startup (e.g. with Zod) so a missing value fails fast.
- If a secret leaks, tell Aiken immediately so it can be rotated.
Code
- TypeScript in strict mode, with no
any(see tech stack). - Run the linter and type check before pushing.
- Validate all external input (forms, API requests, webhooks) with Zod.
Database
- Every schema change goes through a Drizzle migration, and migrations are committed.
- Never edit a migration that has already run in production. Write a new one instead.
- Never connect to a production database from your machine without asking first.
Getting help
Ask in the dev channel or contact Aiken.