Thank you for your interest in contributing!
- This project uses a monorepo with multiple packages in
packages/and apps inapps/. - Each package may have its own scripts. Most can be run from the root using
bun run <script>(see below).
- Open issues for bugs, questions, or feature requests.
- Fork the repository and create a new branch for your changes.
- Open a pull request with a clear description of your changes to STAGING branch.
- Follow the code style and naming conventions.
- Write concise, clear, and testable code.
- Use
bun installat the root to install all dependencies. - To run scripts for a package from the root, use:
bun run db:studio(Drizzle Studio)bun run clickhouse:init(Initialize ClickHouse tables)bun run sdk:build(Build SDK)bun run email:dev(Email dev server)- See
package.jsonfor more root-level scripts.
- You can also
cdinto any package and run its scripts directly.
- If you add a script to a package, consider adding a forwarding script in the root
package.jsonfor convenience. - Use the format:
<package>:<script>(e.g.,db:push,sdk:build).
- For Postgres (Drizzle):
bun run db:pushto apply migrationsbun run db:studioto open Drizzle Studio
- For ClickHouse:
bun run clickhouse:initto create all required tables
- Follow the existing code style and naming conventions (see code and lint configs).
- Avoid using
any, keep logic simple, and prefer type safety.
- Keep PRs focused and minimal.
- Add tests for new features or bug fixes.
- Update documentation as needed.
- Ensure all checks pass before requesting review.
- Use the GitHub issue templates for bug reports and feature requests.
- Provide as much detail as possible, including steps to reproduce, environment, and screenshots if relevant.
By participating, you agree to abide by our Code of Conduct.