Listen to and share the music in the Atmosphere. musicsky.up.railway.app/
nextjs atproto music typescript react
3
fork

Configure Feed

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

MDX 54.1%
TypeScript 44.7%
CSS 0.7%
JavaScript 0.5%
Other 0.1%
89 1 1

Clone this repository

https://tangled.org/mejsiejdev.bsky.social/musicsky https://tangled.org/did:plc:ix2e4nkbttdtyurtuvxbeqpw/musicsky
git@tangled.org:mejsiejdev.bsky.social/musicsky git@tangled.org:did:plc:ix2e4nkbttdtyurtuvxbeqpw/musicsky

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Musicsky#

Listen and share music in the Atmosphere

Musicsky is a social music platform built on the AT Protocol. Sign in with any ATProto-compatible server (Bluesky, self-hosted PDS, etc.) and share what you're listening to.

Tech Stack#

Web (apps/web)#

Layer Technology
Framework Next.js 16, React 19
Auth AT Protocol OAuth (@atproto/oauth-client-node)
Styling Tailwind CSS v4, shadcn/ui
State Zustand

Appview (apps/appview)#

Layer Technology
Server Express 5
Database SQLite + Kysely
Sync AT Protocol Tap

Project Structure#

This is a pnpm monorepo managed with Turborepo.

Path Description
apps/web Next.js frontend
apps/appview AT Protocol appview service
packages/common Shared utilities
packages/lexicons AT Protocol lexicon definitions

Getting Started#

# Install dependencies (requires pnpm)
pnpm install

# Start both apps in dev mode
pnpm dev

pnpm dev starts both apps/web and apps/appview via Turbo. Open http://localhost:3000 for the web frontend.

Scripts#

Script Description
pnpm dev Start both apps in development mode
pnpm build Build all apps and packages for production
pnpm typecheck Type-check with TypeScript
pnpm lint Lint with ESLint
pnpm knip Find unused exports and dependencies
pnpm format Format with Prettier

Contributing#

See CONTRIBUTING.md for guidelines.

License#

MIT