Thanks for wanting to contribute! That really means a lot for us. You can contribute in many ways, with or without any coding required.
If you encounter any issue, you can join our Discord (opens in a new tab) so we can help you.
Need some good first issues to start with? Check out the good first issue label (opens in a new tab) on GitHub!
Non-code contributions
Issues and community help
Work in progress...
Documentation website
The documentation website is made of Markdown (opens in a new tab) files, located in packages/docs/pages/
. It uses Nextra (opens in a new tab) behind the scenes.
If you want to preview your changes, you can run the documenation website locally. First, follow the Requirements, and then run pnpm start:docs
at the root of the project. You can now access the documentation website on localhost:3000
.
Code contributions
Coding guidelines
- Commits are following the conventional commits (opens in a new tab) convention.
- We use ESLint and Prettier to format our code, which should be handled automatically by most editors. If this is not the case, you can run the
lint
script. - Make sure to add a test when adding new features / fixing bugs, so we can prevent any other future bug.
Requirements
You will need Node.js (opens in a new tab) >= 16 and PNPM (opens in a new tab) >= 7.3.0 (as of writing). You will also need Docker (opens in a new tab) installed, and if you want to contribute to any Rust code, you will need Rust (opens in a new tab) >= 1.63 installed.
- Fork and clone the repository
- Install all NPM dependencies:
pnpm install
And if you want to contribute on the Dashboard / Serverless:
- Run the local docker-compose:
docker-compose up -d
UI
The UI package is our design system. Navigate to packages/ui
and run pnpm dev
to start the Storybook on http://localhost:6006.
Dashboard
The first step is to copy the .env.example
file and rename it to .env
. You will need to fill the following environment variables:
NEXTAUTH_SECRET= # Random secret
S3_REGION= # S3 credentials to a bucket you own
S3_BUCKET=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
GITHUB_CLIENT_ID= # Create a new Github OAuth app: https://github.com/settings/developers
GITHUB_CLIENT_SECRET=
Then, navigate to packages/dashboard
and run pnpm prisma migrate dev
to generate the database tables. You can now start the dashboard using pnpm dev
.
JS Runtime
Work in progress...
Runtime / Serverless
Work in progress...
CLI
Work in progress...
Before submitting a PR
We have some checks in place to ensure we don't introduce bugs or regressions in PRs. You can run pnpm lint
and pnpm typecheck
at the project's root to ensure there are no lint and type errors.
Finally, run pnpm changeset
to generate a changeset file (opens in a new tab). Select the modified packages and choose the semver increment "major", "minor", or "patch".