Adding Client Apps to the Catalog
Want to list your app in the Compatible Client Apps catalog? This guide explains how to submit your app or update an existing entry.
Prerequisites
- Your app must support the OpenSubsonic, Subsonic, or Navidrome API
- You’ll need a GitHub account to submit a pull request
- Images should be in WebP, PNG, or JPEG format
Quick Start
- Fork the navidrome/website repository
- Create a folder for your app in
assets/apps/using kebab-case (e.g.,my-awesome-app) - Add an
index.yamlfile with your app’s metadata - Add a thumbnail image and optional gallery screenshots
- Submit a pull request
Folder Structure
Each app has its own folder under assets/apps/:
assets/apps/
my-app/
index.yaml # App metadata (required)
thumbnail.webp # App thumbnail (required)
screen1.webp # Gallery screenshot (optional)
screen2.webp # Gallery screenshot (optional)
Creating index.yaml
Use the template at assets/apps/_template/index.yaml as a starting point.
Required Fields
| Field | Description |
|---|---|
name |
Display name of your app |
url |
Official app website or homepage |
platforms |
At least one platform (see below) |
api |
Supported API: OpenSubsonic, Subsonic, or Navidrome |
description |
Brief description (1-2 sentences) |
screenshots.thumbnail |
Filename of thumbnail image |
Optional Fields
| Field | Description |
|---|---|
repoUrl |
GitHub repository URL (displays an open source badge) |
screenshots.gallery |
Array of additional screenshot filenames |
platforms.*.store |
Platform-specific store URLs |
Supported Platforms
android- Google Play Storeios- Apple App Storemacos- macOS (optionally with Mac App Store link)windows- Windowslinux- Linuxweb- Web browserother- CLI tools, other platforms
Example index.yaml
name: My Music App
url: https://example.com/my-app
repoUrl: https://github.com/example/my-app # Optional - shows OSS badge
platforms:
android:
store: https://play.google.com/store/apps/details?id=com.example.myapp
ios:
store: https://apps.apple.com/app/my-app/id123456789
web: true
linux: true
api: OpenSubsonic
description: A beautiful music player with offline support and gapless playback.
screenshots:
thumbnail: thumbnail.webp
gallery:
- screen1.webp
- screen2.webp
Image Guidelines
Thumbnail (Required)
- Max size: 1200×1200px
- Aspect ratio: Square preferred
- Format: WebP (PNG/JPEG will be converted)
Gallery Images (Optional)
- Max size: 1200×1200px
- Aspect ratio: Any
- Format: WebP (PNG/JPEG will be converted)
- File size: Keep under 500KB per image
Processing Images
If your images don’t meet the guidelines, run the conversion script:
./convert-app-images.sh my-app
This automatically converts images to WebP format, resizes them to max 1200px, and optimizes file sizes. You’ll need cwebp installed (brew install webp on macOS).
Validating Your Entry
Before submitting, validate your app entry:
npm install # First time only
npm run validate:app my-app
The validation checks:
- YAML syntax and structure
- Required fields are present
- APIs are correctly specified
- Image files exist
- URLs are valid and reachable
- File sizes (warns if images > 500KB)
Updating an Existing App
To update an existing app entry:
- Find the app folder in
assets/apps/ - Modify the
index.yamlor replace images as needed - Run validation and submit a pull request
Questions?
If you have questions about adding your app, please open an issue on GitHub.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can make it even better.
Sorry to hear that. Please tell us how we can improve.