🚧 This documentation is not complete yet as Lagon is in development.
Contributing

Thanks for wanting to contribute! That means a lot to us. You can contribute in many ways, with or without any coding required.

If you encounter any issues, 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 documentation 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 bugs.

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.

  1. Fork and clone the repository
  2. Install all NPM dependencies: pnpm install

And if you want to contribute to the Dashboard / Serverless:

  1. 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 in 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".