How to Contribute

November 12, 2025 · View on GitHub

Here are some guidelines we'd like you to follow before submitting a PR.

Respectful Communication

We welcome feedback and discussions about the project, but all communication must remain respectful and professional.

  • Project-related discussions should take place in public channels such as GitHub issues, discussions, or pull requests.

  • Personal emails, DMs, or other private contact should not be used to criticize, pressure, or personally address maintainers or contributors.

  • If you have feedback, please share it constructively and publicly, so others can participate and learn.

  • Harassment, personal attacks, or abusive messages — whether public or private — will not be tolerated and may result in being blocked or reported.

Maintainers reserve the right to decide when communication crosses the line and to take appropriate action.

Frontend pages

Tailwind warns that you don't construct class names dynamically. Instead of this:

<div class="text-{{ error ? 'red' : 'green' }}-600"></div>

Always use complete class names:

<div class="{{ error ? 'text-red-600' : 'text-green-600' }}"></div>

Types and Props

Please add a type to exported variables. When we generate props files, it will automatically pick up types from your file. If you don't add a type, it will break.

Please run the following to update prop files.

pnpm gen:docs && pnpm gen:compo-data

This script will update component document and update/generate files in src/routes/component-data.

Again avoid type inference for exported variables.

Please put all export variables before functions to avoid breaking props tables.

One or two at a time

Please don't send a large amount of changes at once. It takes time to go through all changes. It is easier to check and update the repo asap.

Conventional commit

When making a commit, we recommend using the Conventional commits.

Some examples are:

feat: add rating component
fix: add if statement to Button component
chore: clean up About page
docs: add timeline page
style: update home page
test: add modal test

When you have a breaking change:

git commit -a "feat: change btnClass name to bClass" -m "BREAKING CHANGE: change the Button component attributes"

Testing

Before submitting a PR, please run a test:

pnpm test:integration