- Clean and searchable commit history
- Automatic changelog generation
- Semantic versioning (major/minor/patch)
- Clear communication across teams
- Automated SDK publishing + CI pipelines
Commit Message Format
Every commit follows this structure:Commit Types (Prefixes)
Below is the complete list of prefixes used in modern engineering teams.β feat β New Feature
Used when adding new capabilities, endpoints, UI elements, models, or SDK methods.Triggers minor version bump (
1.2.0 β 1.3.0)π fix β Bug Fix
Used when fixing incorrect behavior, broken logic, bad types, crashes, or regressions.Triggers patch version bump (
1.3.1 β 1.3.2)π§ chore β Maintenance Tasks
Used for changes that do not affect functionality.Does not affect versioning
π refactor β Internal Code Improvements
Used when changing code structure without altering behavior.Does not bump version
π docs β Documentation Only
Used for changes to documentation, comments, or examples.π¨ style β Code Style Changes
Used for formatting, styling, lint fixes, or naming improvements.π§ͺ test β Adding or Modifying Tests
Used when creating or fixing tests.βοΈ build β Build System Changes
Used for changes in the build pipeline, bundlers, tooling, dependencies, or configuration.π οΈ ci β Continuous Integration
Used for changes to GitHub Actions, pipelines, scripts, and automation.π perf β Performance Improvements
Used when improving performance, reducing latency, or optimizing code.π security β Security Fixes
Used when correcting vulnerabilities or implementing secure patterns.β©οΈ revert β Reverting a Commit
Automatically created by Git when rolling back a previous change.Using Scopes
Scopes clarify where the change happened. Format:Recommended Scopes
| Area | Scope |
|---|---|
| SDK code | sdk |
| API backend | api |
| React Native app | rn |
| Web app | web |
| Auth system | auth |
| UI components | ui |
| Models / schemas | models |
| Database | db |
| Infrastructure | infra |
| Build system | build |
| Testing | test |
Breaking Changes
Format options:Triggers a major version bump (
1.3.2 β 2.0.0)Commit Body (Optional)
Used when you need to provide more context.Commit Footer (Optional)
Used for:- Breaking changes
- Issue linking
- Migration notes
- Deprecations
Full Examples
New feature
New feature
Bug fix
Bug fix
Regenerating SDK
Regenerating SDK
Refactor
Refactor
Breaking change
Breaking change
Documentation
Documentation
Tests
Tests
Best Practices
Keep Subject Short
Subject line should be under 72 characters
Use Imperative Tone
Use βaddβ, βfixβ β not βaddingβ, βfixedβ
Include Scopes
Add scopes whenever possible for clarity
Single Purpose
Never mix unrelated changes in one commit