Thank you for considering contributing to Rhythmic! This document provides clear guidelines tailored to our project structure and workflow.
Please review our Code of Conduct before contributing. We are committed to fostering an open and welcoming environment.
There are many ways to contribute, from reporting bugs to writing code, improving documentation, or helping with translations. It's a small project, but hey, maybe you find a place here, too!
We especially welcome translations to make Rhythmic accessible to more users!
- Add translation files: Create or update both
i18n.mdandhelp.mdinsrc/language/<lang>/ - Update supported languages: Add your language code to
src/language/supportedLanguages.js - Submit a Pull Request following the workflow below
For all inquiries, please open a new issue on the Issues page with the appropriate label:
- Questions 🤔: Use the "question" label - we'll do our best to help you out!
- Bugs 🐛: Use the "bug" label and include:
- Clear title summarizing the issue
- Steps to reproduce
- Expected vs. actual behavior
- Environment details (OS, browser, Node.js version)
- Screenshots/error messages if helpful
- Feature Requests ✨: Use the "feature" label and describe your idea clearly
Important: Check existing issues first to avoid duplicates. Please do not submit a pull request for a major feature without prior discussion. We'll use the issue to discuss your idea, its feasibility, and find the best path forward.
-
Fork and clone:
git clone git@github.com:YOUR_USERNAME/rhythmic.git cd rhythmic npm install -
Create a branch:
git checkout -b feature/your-feature-name # or git checkout -b bugfix/your-bug-description -
Development commands:
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Check code stylenpm run test- Run tests
If you're new to open source or contributing to this project, look for issues labeled "good first issue" on the Issues page. New ideas are awesome!
- React components:
src/components/ - Utilities:
src/utils/ - Tests:
src/utils/*.test.js - Translations:
src/language/<lang>/(bothi18n.mdandhelp.md) - Update
src/language/supportedLanguages.jsfor new languages - Static assets:
public/
- Follow ESLint rules in
.eslintrc.cjs - Use 2-space indentation
- Write tests for new features and bug fixes
- Use clear, present-tense commit messages (e.g.,
feat: add font search feature)
- Test your changes: Run
npm run testandnpm run lint - Commit and push:
git commit -m "feat: Add font search feature" git push origin feature/your-feature-name - Create a Pull Request with:
- Clear title and description
- Link to relevant issues (
Fixes #123,Closes #456) - One logical change per PR
All contributions are reviewed by project maintainers. We aim for prompt reviews and constructive feedback. Please be responsive to review comments.
Need assistance? Open an issue on GitHub or contact maintainers directly.
By contributing, you agree that your contributions will be licensed under the project's LICENSE.