Profpatsch/.claude/CLAUDE-PROJECT-whatcd-resolver.md
whatcd-resolver Project
Web service interfacing with Redacted torrent tracker and Transmission client. Provides search, artist pages, torrent management, and music streaming.
Architecture
- Backend: Haskell with Warp on port 9093
- Database: PostgreSQL (tmp-postgres for development)
- Build: Nix + Ninja with s6 service management
- External: Redacted API, Transmission RPC daemon
Key Components
- AppT Monad: PostgreSQL pooling, OpenTelemetry tracing, Transmission session
- Database: Torrent metadata, API response caching, settings storage
- Frontend: Custom
<progress-player>web component, HTMX for dynamic updates
Development Philosophy
Migration Strategy: Replace HTMX with plain HTML forms and server-side redirects for better maintainability and accessibility.
Integration
- Redacted API: Requires API key for search/torrent fetching
- Transmission: RPC access on port 9091 for download management
- Services: Jaeger tracing, Caddy reverse proxy, Ninja background services
Design Patterns
- Type-safe routing with Haskell's type system
- Transactional database access with
ErrorTreeerror handling - OpenTelemetry integration for full observability