Skip to content

Conventional Commits

To maintain a clean and readable commit history, we enforce the Conventional Commits standard.

What is a Conventional Commit?

A conventional commit follows this structure:

<type>(optional scope): <description>
[optional body]
[optional footer(s)]

Examples

  • feat(auth): add support for OAuth2 login
  • fix(api): handle 500 errors from backend
  • docs(readme): update setup instructions
  • refactor(ui): simplify button component

PR Titles

Your pull request title must also follow the Conventional Commit format.

⚠️ If the PR title does not follow this convention, GitHub Actions will fail, and the PR will be blocked from merging.


better-commits

To simplify writing correct commit messages, we recommend using better-commits.

You can run it without installation:

Terminal window
npx better-commits

It will guide you through a step-by-step prompt to generate a properly formatted Conventional Commit.

You can also install it globally:

Terminal window
npm install -g better-commits

Then use it as:

Terminal window
better-commits

Accepted Commit Types

TypeDescription
featA new feature
fixA bug fix
docsDocumentation-only changes
styleCode style changes (formatting, no logic impact)
refactorCode changes that don’t fix a bug or add a feature
testAdding or updating tests
choreMaintenance tasks, tooling
ciChanges to CI/CD configuration
buildChanges that affect the build system or dependencies

Benefits

  • πŸ“– Clear and standardized commit history
  • πŸš€ Support for automated changelogs and semantic releases
  • πŸ” PR validation via GitHub Actions
  • πŸ€– Easy integration with tools like better-commits

By following this convention and using better-commits, we ensure consistency and automation across all contributions.