Store podcast settings in AT Protocol for persistence
Problem:
- Settings were stored in local file system (podcast-metadata.json)
- File system is ephemeral on Railway - resets on each deployment
- Settings were lost when container restarted
Solution:
- Store settings as AT Protocol record (app.podcast.settings collection)
- Fixed rkey 'self' ensures one settings record per user
- Settings now persist permanently in decentralized storage
- Local file remains as fallback cache
Changes:
- POST /api/feed/metadata now requires auth and stores to ATProto
- GET /api/feed/metadata reads from ATProto first, falls back to local
- RSS generation fetches settings from ATProto
- Settings are truly owned by user and portable
Benefits:
- Settings persist across deployments
- Truly decentralized - user owns their data
- No database needed
- Automatic backup via ATProto
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>