Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Commitlint config for conventional system extensions for scopes and more

Semantically Released Build Status Code Coverage version downloads Styled with Prettier AirBnB style guide

MIT License All Contributors PRs Welcome Commitizen friendly Code of Conduct

Watch on GitHub Star on GitHub Tweet

commitlint configuration for system and apps with defined scopes, commit types and more. By defining standard components of a system or app and using them as scopes, plus adding a few related to commit types, we ensure consistency across our projects.

These are scopes that should be common in most systems, we call these components:

  • auth: Authentication, login, OAuth, etc.
  • forms: General user input, forms, etc.
  • navigation: Navigation, history and routing.
  • networking": Network-related code, connectivity checks, offline persistence, etc.
  • notifications: Notification code, in-app notifications, push notifications, etc.
  • profile: User profile, friends, followers, etc.
  • settings: Settings and preferences.
  • system: A general catch-all, for changes that impact many areas of the system.

We define 4 scopes you can use if you're interested in highlighted which platform is affected by the changes:

  • core: Shared code.
  • native: Mobile platforms.
  • desktop: Desktop platforms.
  • web: Web platforms.

And finally, we define general scopes that refer to the nature of the change:

  • build
  • deps
  • packaging
  • release

But more importantly, we allow you to customize these. system refers to the above. You can include your packages in the packages section, and you can customize your components, along with descriptions.

Installing / Getting Started

Create a .commitlint-patterns.json at the root of your respository. See examples/commitlint-pattern.json.

Extend your config with this one. In commitlint.config.js:

module.exports = {
  extends: ['config-conventional-system']


  • commitlint


Built With

  • Ramda

Setting up Dev

Here's a brief intro about what a developer must do in order to start developing the project further:

git clone
cd commitlint-config-conventional-system

And state what happens step-by-step. If there is any virtual environment, local server or database feeder needed, explain here.


We use SemVer for versioning. In addition, it's automatic via semantic-release, and our commit convention.

For the versions available, see the Releases on this repository.


Here you should write what are all of the configurations a user can enter when using the project.


yarn test

Style guide

We base our code style on AirBnB's style guide and we check with ESLint and automatically format our code with Prettier.


This project is licensed under the MIT License - see the license file for details.


If you're interested in contributing to this project in any form, please read our Contribution Guidelines.

Code of Conduct

We've adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.


Thanks goes to these people (emoji key):

Adrian Perez

💻 📖 🚇 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!


Commitlint config for conventional system extensions for scopes and more




Code of conduct





No packages published