README.md

plyr.fm documentation#

organized knowledge base for plyr.fm development.

quick navigation#

operations#

backend#

frontend#

deployment#

tools#

  • logfire.md - SQL query patterns for observability
  • neon.md - postgres database management
  • pdsx.md - ATProto PDS explorer

atproto#

moderation#

  • moderation/ - copyright detection, sensitive content, labeler

testing#

  • testing/ - pytest patterns, parallel execution

local development#

architecture overview#

plyr.fm uses a hybrid storage model:

  • audio files: cloudflare R2 (CDN-backed, zero egress)
  • metadata: ATProto records on user's PDS (decentralized, user-owned)
  • indexes: neon postgres for fast queries

key namespaces:

  • fm.plyr.track - track metadata
  • fm.plyr.like - user likes
  • fm.plyr.comment - timed comments
  • fm.plyr.list - playlists and albums
  • fm.plyr.actor.profile - artist profiles

quick start#

# backend
just backend run

# frontend
just frontend dev

# run tests
just backend test

see local-development/setup.md for complete setup.

contributing#

  1. check docs before researching externally
  2. document decisions as you make them
  3. keep it simple - MVP over perfection
  4. use lowercase aesthetic