-
Notifications
You must be signed in to change notification settings - Fork 1
Contributing
ecamacho edited this page Jul 10, 2026
·
2 revisions
How to contribute to Jellyx. Read this before opening a PR.
- Fork and clone the repo
- Build from source → Building from Source
- Make your change with conventional commits (below)
- Open a PR; link an issue if applicable
- Sign the CLA (required) → Privacy and License
- 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.
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.
| 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) |
cargo test --workspace
cargo build --workspaceRun both before opening a PR. UI changes should be validated with cargo tauri dev.
- Jellyx is AGPL-3.0 with a commercial option.
- A CLA is required for contributions.
- See Privacy and License for details.
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.
- Engineering Process — conventions and workflow detail
- Architecture — where things live
- Privacy and License — CLA and licensing