Content Publishing Flow
Drafts live in the database until published. Publishing creates Nostr events, signs them, and broadcasts to relays.
Resource publishing
- Draft stored in DB
- Build event (NIP-23 for free, NIP-99 for paid)
- Sign with NIP-07 (Nostr-first) or server-side key (OAuth-first)
- Publish to relays
- Store noteId in DB
Course publishing
- Publish each lesson resource first
- Build course list event (NIP-51) that references lesson identifiers
- Publish course event
- Store noteId and lesson ordering in DB
Relay strategy
- Publish to a stable set of relays for redundancy
- Read from a broader relay set for discovery
This flow keeps drafts private until you are ready, while ensuring published content is portable and verifiable.