Thanks for your interest in contributing! We welcome issues, feature requests, and pull requests.
By participating, you agree to abide by our Code of Conduct.
- Node.js 22+
- Bun package manager
- PostgreSQL 14+
- Fork and clone the repository.
- Install dependencies:
- bun:
bun install
- bun:
- Copy environment file:
cp .env.example .env.localand fill in values. - Create the database and set
DATABASE_URLin.env.local. - Run migrations with Drizzle:
- Generate (if needed):
bunx drizzle-kit generate - Push:
bunx drizzle-kit push
- Generate (if needed):
- Start the dev server:
bun dev.
See .env.example for all supported variables. At minimum you will need:
DATABASE_URLAUTH_SECRET
Optional integrations (configure only if you use them): PostHog, Supabase, Cloudinary, Resend, OAuth providers (Google/GitHub/LinkedIn), Letraz proxy.
- Create feature branches from
main:feature/<short-description>.
- Type-safe, readable code (see repository lint settings).
- No secrets in code. Use environment variables.
- Server-only secrets must never be referenced on the client.
- Clear and descriptive. Example:
feat(auth): add LinkedIn provider.
- Lint:
bun run lint - Build:
bun run build
- Ensure the app builds locally.
- Open a pull request against
mainwith a concise description and screenshots if UI changes. - Link related issues and add notes on migrations or breaking changes.
Use GitHub Issues. For security vulnerabilities, please follow SECURITY.md.
By contributing, you agree that your contributions will be licensed under the MIT License.