This project uses semantic commits with Gitmoji prefixes to improve clarity, consistency, and automation in version control.
We follow a format inspired by Conventional Commits and Gitmoji, with the emoji placed at the beginning of the message.
<emoji> type(scope): message✨ feat(frontend): add playlist preview feature| Type | Purpose | Emoji | Example |
|---|---|---|---|
feat |
Add a new feature | ✨ | ✨ feat(frontend): add playlist preview feature |
fix |
Bug fix | 🐛 | 🐛 fix(backend): handle API error |
docs |
Documentation update | 📝 | 📝 docs(README): update setup instructions |
style |
Code style change (no logic impact) | 🎨 | 🎨 style(ui): adjust button spacing |
refactor |
Code refactor (no feature/bug fix) | ♻️ | ♻️ refactor(api): simplify route handlers |
perf |
Performance improvement | ⚡ | ⚡ perf(frontend): optimize rendering |
test |
Add or update tests | ✅ | ✅ test(backend): add unit tests for API |
build |
Build-related changes | 📦 | 📦 build(ci): update Node.js version |
ci |
CI/CD changes (pipelines, workflows) | 👷 | 👷 ci(actions): add lint and test stages |
chore |
Other minor tasks (deps, tooling, cleanup) | 🔧 | 🔧 chore(deps): update dependencies |
revert |
Revert a previous commit | ⏪ | ⏪ revert(frontend): undo playlist preview changes |
| Scope | Description |
|---|---|
frontend |
User interface and client-side code |
backend |
Server-side API routes and business logic |
api |
API routes and integrations |
ui |
UI components and styling |
config |
Configuration files and settings |
docs |
Documentation files |
ci |
Continuous integration and deployment pipelines |
tests |
Test suites and test-related code |
For breaking changes, include a note after the commit body:
💥 feat(backend): drop support for legacy API
BREAKING CHANGE: This version is no longer compatible with v0 configs.- Use present tense:
add, notadded;fix, notfixed - Keep messages under 100 characters if possible
- Be consistent with emoji and spacing
Happy committing! 🚀