audio streaming app plyr.fm

docs: update STATUS.md with documentation restructure work (#1042)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

authored by zzstoatzz.io

Claude Opus 4.6 and committed by
GitHub
4dd6ed45 b767cdfe

+22 -48
+22 -48
STATUS.md
··· 47 47 48 48 ### March 2026 49 49 50 + #### public docs restructure (PRs #1035-1041, Mar 6) 51 + 52 + rewrote docs.plyr.fm from developer-only internal docs to an audience-first site serving four groups: listeners, artists, developers, and contributors. 53 + 54 + **what changed:** 55 + - moved all internal operational docs (auth, deployment, security, moderation, local dev setup) to `docs-internal/` — still available to active contributors, no longer public 56 + - created audience pages: `listeners.md`, `artists.md`, `developers.md` with content tailored to each group 57 + - rewrote `contributing.md` with fork workflow, prerequisite list, env var links, and a copy-pasteable prompt for coding assistants 58 + - landing page overhaul: audience card grid, live trending track embeds (fetched from `/tracks/top`), improved search with clickable results and thumbnails, animated hero waveform 59 + - created `skills/contribute/SKILL.md` ([agentskills.io](https://agentskills.io) spec) — action-oriented playbook for AI coding assistants contributing to the project 60 + - updated sidebar: listeners → artists → developers → lexicons → contributing → legal 61 + - linked docs.plyr.fm prominently from README.md 62 + 63 + **new components:** `TrendingTracks.astro` (lazy-loaded embed iframes), `HeroWaveform.astro` (animated SVG), updated `TrackSearch.astro` (clickable results with thumbnails) 64 + 50 65 #### embed glow bar + share button (PRs #996-998, Mar 1) 51 66 52 67 **glow bar**: 1px accent-colored bar (`#6a9fff`) on track and collection embeds that lights up on playback and dims on pause, matching the main Player's `::before` style. uses `color-mix()` for the box-shadow glow. works across all container query breakpoints. ··· 227 242 228 243 ### current focus 229 244 245 + public docs restructured at docs.plyr.fm — audience-first pages for listeners, artists, developers, and contributors. internal operational docs moved to `docs-internal/`. landing page with live trending embeds, search, and platform stats. contribute skill for AI coding assistants. 246 + 230 247 jams shipped to all users — feature flag removed, output device mode (single-speaker) working. image performance: 96x96 WebP thumbnails for all artwork with storage protocol abstraction and backfill script. PDS audio uploads graduated to GA. homepage performance improved with Redis-cached follow graph and parallelized network artists fetch. ATProto scope parsing replaced with spec-compliant SDK implementation. 231 248 232 249 ### known issues ··· 350 367 351 368 ## for new contributors 352 369 353 - ### getting started 354 - 1. clone: `gh repo clone zzstoatzz/plyr.fm` 355 - 2. install dependencies: `uv sync && cd frontend && bun install` 356 - 3. run backend: `uv run uvicorn backend.main:app --reload` 357 - 4. run frontend: `cd frontend && bun run dev` 358 - 5. visit http://localhost:5173 359 - 360 - ### development workflow 361 - 1. create issue on github 362 - 2. create PR from feature branch 363 - 3. ensure pre-commit hooks pass 364 - 4. merge to main → deploys to staging 365 - 5. create github release → deploys to production 366 - 367 - ### key principles 368 - - type hints everywhere 369 - - lowercase aesthetic 370 - - ATProto first 371 - - async everywhere (no blocking I/O) 372 - - mobile matters 373 - - cost conscious 374 - 375 - ### project structure 376 - ``` 377 - plyr.fm/ 378 - ├── backend/ # FastAPI app & Python tooling 379 - │ ├── src/backend/ # application code 380 - │ ├── tests/ # pytest suite 381 - │ └── alembic/ # database migrations 382 - ├── frontend/ # SvelteKit app 383 - │ ├── src/lib/ # components & state 384 - │ └── src/routes/ # pages 385 - ├── services/ 386 - │ ├── transcoder/ # Rust audio transcoding (Fly.io) 387 - │ ├── moderation/ # Rust content moderation (Fly.io) 388 - │ └── clap/ # ML embeddings (Python, Modal) 389 - ├── infrastructure/ 390 - │ └── redis/ # self-hosted Redis (Fly.io) 391 - ├── docs/ # documentation 392 - └── justfile # task runner 393 - ``` 370 + see the [contributing guide](https://docs.plyr.fm/contributing/) for setup instructions, or install the [contribute skill](skills/contribute/SKILL.md) for AI coding assistants. 394 371 395 372 ## documentation 396 373 397 - - [docs/README.md](docs/README.md) - documentation index 398 - - [runbooks](docs/runbooks/) - production incident procedures 399 - - [background tasks](docs/backend/background-tasks.md) - docket task system 400 - - [logfire querying](docs/tools/logfire.md) - observability queries 401 - - [moderation & labeler](docs/moderation/atproto-labeler.md) - copyright, sensitive content 402 - - [lexicons overview](docs/lexicons/overview.md) - ATProto record schemas 374 + - **public docs**: [docs.plyr.fm](https://docs.plyr.fm) — for listeners, artists, developers, and contributors 375 + - **internal docs**: [docs-internal/](docs-internal/) — deployment, auth internals, runbooks, moderation 376 + - **lexicons**: [docs.plyr.fm/lexicons/overview](https://docs.plyr.fm/lexicons/overview/) — ATProto record schemas 403 377 404 378 --- 405 379 406 - this is a living document. last updated 2026-03-01 (embed glow bar + share button, embed layout fixes). 380 + this is a living document. last updated 2026-03-06 (public docs restructure). 407 381