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:
Modules
- Aurora — video client (Get-Coral/aurora)
- Tide — torrent client (Get-Coral/tide)
- Librarian — download imports and library hygiene (Get-Coral/librarian)
- Fathom — reading interface (Get-Coral/fathom)
- Marquee — ambient display (Get-Coral/marquee)
- KAPOW! — karaoke queue (Get-Coral/KAPOW)
- Encore — the module scaffold (Get-Coral/encore)
Libraries and tooling
- Jellyfin client — typed API client (Get-Coral/jellyfin)
- Coral UI — shared components (Get-Coral/coral-ui)
- create-coral — the scaffolder (Get-Coral/create-coral)
- template — what create-coral clones (Get-Coral/template)
- dev-standards — shared Biome and TypeScript configs (Get-Coral/dev-standards)
If a module’s page says Early or Scaffold, that is where help goes furthest. See Introduction for the current status of each.
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, and the branch releases cut from
- 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 share their tooling through
@get-coral/dev-standards:
- Biome — linting and formatting, via
@get-coral/biome-config. Coral does not use ESLint or Prettier anywhere - TypeScript — via
@get-coral/tsconfig - Vitest — tests
Run checks before submitting:
pnpm check # Biome lint + format checkpnpm typecheck # TypeScriptpnpm test # Vitestpnpm lint runs Biome with auto-fix. Note the script is typecheck, with no
hyphen.
Testing
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”Coral is MIT licensed. The published npm packages
(@get-coral/jellyfin, @get-coral/ui, @get-coral/tsconfig,
@get-coral/biome-config, create-coral) declare "license": "MIT", and
Aurora, KAPOW! and Coral UI carry a LICENSE file.
Several module repositories do not yet carry one. If you are contributing to a
repository with no LICENSE file, ask before assuming — and adding the file is
itself a welcome pull request.
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! 🎉