Skip to content

A decentralized, offline-first music player, with sync support between all of your devices.

Notifications You must be signed in to change notification settings

ProjectDistribute/Distribute

Repository files navigation

Distribute Banner

Distribute

Stop renting your music.
An offline-first streaming music app that connects to your home server.

Flutter Dart Bloc Drift

Status License

Overview

Distribute is a decentralized, offline-first music player designed for those who own their library. It connects directly to your home server, syncing your collection for seamless offline playback.

🎧 Features

Feature Description
Offline Ready Your library is cached locally on your device. Take your entire collection on the plane, the subway, or into the wild.
Home Server Sync Direct connection to your personal storage. Cross-sync servers to expand your library.
Lossless Audio The clearest sound with no compromises, powered by a high-performance audio engine.
Privacy Focused We don't store, control, or own your data. You host your hub.

Screenshots

Distribute Screenshot

Distribute Screenshot

Distribute Screenshot


📀 Download

Windows, Linux, macOS & Android

Download the latest release from the releases page.

iOS

Download from TestFlight


🛠️ Tech Stack

Distribute is built with a focus on performance, beauty, and utility.

  • App Engine: Flutter (Cross-platform native performance)
  • State Management: Bloc (Predictable state containers)
  • Database: Drift (Reactive SQLite for offline caching)
  • Audio: SoLoud (High-performance audio engine)
  • Networking: Dio (Robust HTTP client)

🗺️ Roadmap

v0.2.0 (Current)

  • Global Search
  • User Request System
  • User Authentication
  • Song Downloads
  • Playlist Management
  • Built-in Music Player
  • Offline Mode
  • Setup Wizard
  • Album, artist search

v1.0.0

  • Advanced playlist management (reordering, playlist creation)
  • Song streaming
  • Browse local music files

v2.0.0

  • Cross-server content synchronization
  • Social features (followers, comments)

v3.0.0

  • Music recommendation engine

Known Issues

  • None

🛠️ Development

Prerequisites

  • Flutter SDK (v3.40.0-0.2.pre or higher)
  • Dart SDK

Getting Started

  1. Clone the repository:

    git clone https://github.com/ProjectDistribute/Distribute.git
    cd app
  2. Install dependencies:

    flutter pub get
  3. Run the project:

    flutter run

Code Generation

This project uses build_runner for type-safe code generation.

  • Generate files once:

    dart run build_runner build -d
  • Watch for changes:

    dart run build_runner watch -d

VS Code Setup

To keep your file explorer clean, add this to your .vscode/settings.json:

{
    "explorer.fileNesting.patterns": {
        "*.dart": "$(capture).g.dart, $(capture).freezed.dart"
    }
}

Disclaimer

We don't endorse piracy. Distribute is built for your owned library. Support the artists you love by purchasing their music.