Skip to content

Contributing

ecamacho edited this page Jul 10, 2026 · 2 revisions

Contributing

How to contribute to Jellyx. Read this before opening a PR.

Quick path

  1. Fork and clone the repo
  2. Build from source → Building from Source
  3. Make your change with conventional commits (below)
  4. Open a PR; link an issue if applicable
  5. Sign the CLA (required) → Privacy and License

Ground rules

  • Jellyx is alpha. Don't assume stability of internal APIs.
  • Rust is the source of truth; Svelte is a dumb client. See Architecture.
  • Don't add video playback. Jellyx is audio-only by design.
  • Don't add tracking, ads, or accounts. See Privacy and License.
  • Match existing patterns in the crate you're touching.

Conventional commits (required)

Releases generate notes from conventional commits. Use them:

feat: add X
fix: handle Y
docs: update Z
refactor: rename A to B
chore: bump deps

Without conventional commits, your change won't appear in release notes and may block a release.

Where to work

Area Location
Domain logic (no Tauri) jellyx-core
App, audio, IPC, persistence, sources, updater jellyx-desktop
CLI jellyx-cli
FFI jellyx-ffi
UI ui/ (Svelte)

Testing

cargo test --workspace
cargo build --workspace

Run both before opening a PR. UI changes should be validated with cargo tauri dev.

License and CLA

  • Jellyx is AGPL-3.0 with a commercial option.
  • A CLA is required for contributions.
  • See Privacy and License for details.

Releases

Releases are maintained by maintainers. If your change is user-facing, mention it so the release notes and wiki can be updated. See Release Process and Wiki Maintenance.

Next step

Clone this wiki locally