Thank you for your interest in contributing to SonicJS!
- Full Contributing Guide - Detailed guide on how to contribute
- Project Governance - How decisions are made and who the maintainers are
- Good First Issues - Great starting points for new contributors
- Help Wanted - Issues where we need community help
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/sonicjs.git cd sonicjs - Install dependencies:
npm install
- Start development:
npm run dev
We appreciate every developer who wants to contribute. To ensure the best experience for both contributors and maintainers:
- Start with code, not meetings - Submit at least one meaningful pull request before requesting deeper involvement
- Find an issue - Check our issue tracker for something to work on
- Claim the issue - Comment on the issue to indicate you're working on it
- 🐛 Bug Fixes - Fix a bug with a well-tested solution
- ✨ New Features - Implement a feature that has been discussed and approved
- 📝 Documentation - Significantly improve or add documentation
- 🧪 Test Coverage - Add meaningful tests for untested functionality
- TypeScript: All code must be in TypeScript with proper types
- Testing: New features must include tests
- Documentation: Public APIs must be documented
- Formatting: Use Prettier (runs automatically on commit)
- Linting: ESLint rules must pass (runs automatically on commit)
- Naming Conventions: See our Coding Standards Guide for detailed naming conventions and code style guidelines
# Lint the core package
npm run lint --workspace=@sonicjs-cms/core
# Auto-fix lint issues
npm run lint:fix --workspace=@sonicjs-cms/coreBefore submitting a PR:
- All tests pass (
npm test) - Linting passes (
npm run lint --workspace=@sonicjs-cms/core) - Changes are documented if needed
- PR description explains the changes
- Related issue is referenced
- Commits are signed off (see DCO below)
By contributing to SonicJS, you certify that you wrote the code (or otherwise have the right to submit it) and agree to release it under the project's MIT license. This is formalized by the Developer Certificate of Origin.
To signal your agreement, add a Signed-off-by line to each commit:
git commit -s -m "your commit message"This appends a line like Signed-off-by: Your Name <your.email@example.com> to the commit message using your configured user.name and user.email.
- Check existing issues - your question may already be answered
- Ask in GitHub Discussions - for general questions
- Join our Discord - for real-time chat
We look forward to your contributions!