Getting Started Contributing
Contributing to Coral
Section titled “Contributing to Coral”The Coral ecosystem welcomes contributions from the community! Whether you’re fixing bugs, adding features, improving documentation, or building new modules — your help is appreciated.
Quick Start
Section titled “Quick Start”If you want to start a brand new Coral module instead of contributing to an existing one, scaffold it first:
pnpm create coral@latest my-modulenpm create coral@latest my-modulebun create coral@latest my-moduleThat gives you the standard Coral app template with TypeScript, Biome, and release automation already configured. The dedicated create-coral CLI guide has the full setup flow.
1. Pick a Project
Section titled “1. Pick a Project”Choose where you want to contribute:
- Aurora - Video client (github.com/Get-Coral/aurora)
- Fathom - Reading interface (github.com/Get-Coral/fathom)
- Librarian - Library management (github.com/Get-Coral/librarian)
- KAPOW - Karaoke manager (github.com/Get-Coral/KAPOW)
- Jellyfin Client - API library (github.com/Get-Coral/jellyfin)
- Ecosystem - Any module or library
2. Set Up Locally
Section titled “2. Set Up Locally”# Clone the repositorygit clone https://github.com/Get-Coral/<project>.gitcd <project>
# Install dependenciespnpm install
# Start development serverpnpm dev3. Make Your Changes
Section titled “3. Make Your Changes”- Create a new branch:
git checkout -b feature/your-feature - Make your changes
- Test thoroughly
- Commit with clear messages
4. Submit a Pull Request
Section titled “4. Submit a Pull Request”- Push your branch to GitHub
- Create a Pull Request with a clear description
- Link any related issues
- Wait for review feedback
Branch Strategy
Section titled “Branch Strategy”- main - Production-ready code
- develop - Development branch (if used)
- feature/ - New features
- fix/ - Bug fixes
- docs/ - Documentation changes
Commit Message Guidelines
Section titled “Commit Message Guidelines”Write clear commit messages:
fix: resolve video player pause issue
Fixes #123: Video player now correctly pauses when clicking pause buttonon slow connections.
- Added network state check before sending pause command- Added loading state UI- Added test caseFormat:
type: short description- Blank line
- Longer description if needed
- Issue references like
Fixes #123
Types:
feat:- New featurefix:- Bug fixdocs:- Documentationstyle:- Formatting (no code change)refactor:- Code cleanuptest:- Testsci:- CI/CD configuration
Code Style
Section titled “Code Style”All Coral projects use:
- Biome - Linting and formatting
- TypeScript - Type checker
- ESLint - Code quality
Run checks before submitting:
pnpm lintpnpm type-checkpnpm formatTesting
Section titled “Testing”Include tests for new features:
pnpm testDocumentation
Section titled “Documentation”Update documentation for:
- New features
- Configuration changes
- API additions
- Breaking changes
Reporting Issues
Section titled “Reporting Issues”When reporting bugs, include:
- Clear description of the issue
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment (OS, browser, versions)
- Relevant logs or error messages
Getting Help
Section titled “Getting Help”- Open a GitHub Discussion for questions
- Check existing issues first
- Join the Jellyfin community
- Ask on GitHub
Code Review Process
Section titled “Code Review Process”- Submission - PR is created and automated checks run
- Review - Maintainers review code
- Feedback - Suggestions or requests for changes
- Updates - You make requested changes
- Approval - PR is approved
- Merge - Code is merged to main
Don’t worry about feedback — it’s how we maintain quality!
License
Section titled “License”By contributing, you agree to license your contributions under the project’s license:
- Most Coral projects: MIT
- Some may vary — check the LICENSE file
Building a New Module
Section titled “Building a New Module”Want to create a new Coral module? Start with pnpm create coral@latest, then see Project Templates.
Recognition
Section titled “Recognition”Contributors are recognized in:
- GitHub commit history
- Release notes
- README contributor sections
- Website acknowledgments
Thank You!
Section titled “Thank You!”Thank you for helping make Coral better! 🎉