Skip to content

Conventional Commits

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

A conventional commit follows this structure:

<type>(optional scope): <description>
[optional body]
[optional footer(s)]
  • feat(auth): add support for OAuth2 login
  • fix(api): handle 500 errors from backend
  • docs(readme): update setup instructions
  • refactor(ui): simplify button component

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.


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

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

  • 📖 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.