Chat User Flairs (WIP)
Problem
We need a flexible system to display per-user visual markers such as:
- flairs (text/icons)
- badges
- role colours
- platform indicators
These must work across:
- web chat
- embeds
- overlays
- future clients
Non-Goals
- Hard-coding Twitch-style roles
- UI-specific storage
- Per-message decoration
Constraints
- Must be derivable server-side
- Must survive reconnects
- Must be cacheable
- Must not be computed on the hot path
Candidate Models
Option A: Role-Derived Presentation
User
-> Roles[]
-> StyleTokensPros
- Simple mental model
- Low storage cost
Cons
- Poor expressiveness
- Hard to do stacked visuals
Option B: Explicit Presentation Layer
User
-> PresentationProfile
-> badges[]
-> flair
-> nameColorPros
- Highly flexible
- UI-agnostic
- Forward-compatible
Cons
- More storage
- Requires sync logic
Open Questions
- Should presentation be mutable by mods?
- Are time-limited flairs needed?
- How do platform badges coexist?
Next Steps
- Decide storage ownership (chat backend vs shared user service)
- Define read model for frontend
- Define mutation permissions
Last updated on