A decentralized music tracking and discovery platform built on AT Protocol ๐ŸŽต rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
0

Configure Feed

Select the types of activity you want to include in your feed.

rocksky / README.md
6.6 kB

Rocksky#

ci build discord FlakeHub

A decentralized, open-source Last.fm alternative built on the AT Protocol (Bluesky).

Rocksky automatically tracks ("scrobbles") the music you listen to from Spotify, Jellyfin, Navidrome, browsers, Android, and more โ€” then publishes it to your decentralized identity. Own your listening history, see what friends are playing in real time, get rich stats, and discover new music โ€” all without a central company controlling your data.

rocksky.app โ€ข Docs โ€ข Discord

Preview

โœจ Key Features#

๐ŸŽต Scrobbling#

  • Last.fm Compatible API โ€“ Works with almost any existing Last.fm scrobbler
  • ListenBrainz Compatible API โ€“ Broad client support
  • Automatic Last.fm mirroring (future scrobbles)

๐Ÿ•’ Playback & History#

  • Recently Played Timeline
  • Stories View โ€“ See what others are listening to live
  • Daily/weekly stats and visualizations

๐Ÿ“Š Insights#

  • Top Artists, Tracks, and Albums
  • Personalized charts
  • Shoutbox & Likes for community interaction

๐ŸŒ Integrations#

  • Spotify โ€“ Direct "now playing" detection
  • Jellyfin โ€“ Media server scrobbling
  • Pano Scrobbler (Android/Linux/Windows)
  • WebScrobbler (browser)
  • More coming soon
  • Blazing-fast search powered by Typesense

๐Ÿšง Roadmap#

  • Webhooks (Discord, custom integrations)
  • Personalized discovery feeds
  • Rocksky Connect (remote playback across devices)
  • Multi-source library support (S3, Google Drive, etc.)
  • Built-in streaming + self-uploaded music
  • Extensions system
  • Cross-device settings sync

Quick Start (for users)#

  1. Go to rocksky.app and sign in with your Bluesky account
  2. Connect your music apps (Spotify, Jellyfin, etc.)
  3. Start scrobbling โ€” your data stays under your control

Self-hosting and advanced usage instructions are below.

๐Ÿš€ Self-Hosting / Development#

Prerequisites#

  • Node.js (v22+)
  • Bun
  • Docker + Docker Compose
  • Rust (for some crates)
  • Deno, Go, Turbo, Wasm Pack (see full docs)

Getting Started#

# 1. Clone the repo
git clone https://github.com/tsirysndr/rocksky.git
cd rocksky

# 2. Install dependencies
npm install -g turbo
bun install

# 3. Environment variables
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env
cp apps/feeds/.env.example apps/feeds/.env
cp .env.example .env
# Edit the .env files as needed
# 4. Start services
docker compose up -d

# 5. Database migrations
turbo db:migrate --filter=@rocksky/api

# 6. Spotify integration (optional but recommended)
# Set SPOTIFY_ENCRYPTION_KEY and SPOTIFY_ENCRYPTION_IV first
bun run spotify <your_client_id> <your_client_secret>

Then run the dev servers:

bun run dev:jetstream
bun run mb
bun run feeds
turbo dev --filter=@rocksky/api --filter=@rocksky/web

Operations console (Clojure REPL)#

tools/console/ is a Clojure project that centralizes every operational script in the monorepo โ€” lexicon codegen, DB migrations, data sync/backfill, Rust daemons, devops glue โ€” behind one discoverable REPL. Instead of remembering which package.json script lives in which workspace or which cargo run -p ... invokes which daemon, you call functions:

cd tools/console
mise install                       # locks JDK 21, Clojure, Babashka
clj -M:rebel                       # pretty terminal REPL (try `(help)`)
clj -M:dev                         # nREPL on :7888 for CIDER / Calva / Cursive
bb help                            # or fast one-shot CLI tasks
bb sync did:plc:abc123             # e.g. sync one user's scrobbles

See tools/console/README.md for the full command catalog and design notes.

Comparison#

Feature Last.fm ListenBrainz Rocksky
Open Source No Yes Yes
Decentralized Identity No No Yes (AT Protocol)
Social Feed Limited Basic Real-time Stories
Data Ownership Last.fm You (export) You (on your PDS)
Last.fm Compatibility โ€” Partial Strong

๐Ÿ“š Documentation#

Full documentation is available at docs.rocksky.app.

Feedback & Contributing#

This repo is the central place for issues and discussions.


Made with โค๏ธ for music lovers who want control over their data.

rocksky.app โ€ข Docs