Project

rocksky

0.01
The project is in a healthy, maintained state
Ruby SDK for Rocksky (rocksky.app): native bindings to the shared Rust core — AppView reads, AT Protocol PDS writes (scrobble, like, follow, shout), and identity hashes.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.11
~> 5.20
~> 13.0
~> 3.19
 Project Readme

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.appDocsDiscord

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

🔍 Search

  • 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.appDocs