Skip to content

[Feature Request] Offline Library Synchronization & Unified Library Experience #100

Description

@Arutosio

Summary

First of all, thank you for creating Chora. I really like its clean UI and overall user experience.

I would love to see Chora become the ultimate offline-first client for Navidrome/Subsonic servers by adding full library synchronization instead of the current manual download workflow.

Description

My primary use case is running Chora on a dedicated Android Digital Audio Player (DAP) with a large microSD card and a very large music library stored on my Navidrome server.

My goal is to treat Chora as a synchronized offline music library rather than just a streaming client.

Ideally, Chora could offer an Offline Sync mode that automatically:

Downloads the entire library (or selected folders/artists/playlists).
Downloads newly added music automatically.
Detects when files on the server have changed.
Replaces locally cached tracks with newer or higher-quality versions automatically (for example replacing MP3 with FLAC, or updating to a remastered version).
Optionally removes tracks that no longer exist on the server.
Performs synchronization in the background whenever the server is reachable.

The result would be a local library that always mirrors the server without requiring manual management.

Unify the Library

I also believe the current Downloads section adds unnecessary complexity.

Instead of separating the experience into a "Library" and a "Downloads" section, I think Chora could expose a single unified library.

When browsing Artists, Albums, Songs or Playlists:

if a song is already synchronized, it plays locally;
if it is not available locally, it streams from the server;
while synchronization is running, Chora could show that the track is waiting to be downloaded or currently syncing.

This would remove the need to browse a separate Downloads section.

Keep the Full Browsing Experience

A unified library should preserve every browsing feature, regardless of whether music is local or remote:

Artists
Albums
Songs
Genres
Playlists
Favorites
Recently Played
Most Played
Search
Smart Playlists
Collections

Users shouldn't have to switch between different sections depending on where the file is stored.

Why this matters

Many users now own Android DAPs with 512 GB, 1 TB or even larger SD cards.

For these devices, the ideal workflow is simply:

"Keep my device synchronized with my Navidrome server automatically."

After the initial synchronization, Chora should quietly keep the local library up to date in the background while still allowing seamless streaming whenever needed.

I believe this feature would make Chora one of the best offline-first clients for Navidrome and Subsonic, especially for users with very large music collections and dedicated music players.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions