Summary
Generalize the current Matrix-specific chat integration to a generic "discussion URL" field on groups and events. Organizers can paste a link to any chat platform (Roomy, Matrix, Discord, Telegram, etc.).
What to build
API (this repo)
- Add
chatUrl (nullable string, validated URL) to group and event entities
- Add to create/update DTOs and validation
- Migration to add the column
Platform (openmeet-platform)
- Admin/organizer: text input for discussion URL in group/event settings
- Members: "Join Discussion" button that opens the URL in a new tab
- Detect known platforms (roomy.chat, discord.gg, t.me, etc.) to show appropriate icon/label
Design decisions
- Coexists with existing Matrix integration (
matrixRoomId) — if chatUrl is set, show it; if not, fall back to embedded Matrix chat
- OpenMeet doesn't manage the room, membership, or provisioning — it's just a link
- For Roomy links, a badge could signal "seamless login" since both apps share ATProto identity (nice-to-have)
Acceptance criteria
Summary
Generalize the current Matrix-specific chat integration to a generic "discussion URL" field on groups and events. Organizers can paste a link to any chat platform (Roomy, Matrix, Discord, Telegram, etc.).
What to build
API (this repo)
chatUrl(nullable string, validated URL) to group and event entitiesPlatform (openmeet-platform)
Design decisions
matrixRoomId) — ifchatUrlis set, show it; if not, fall back to embedded Matrix chatAcceptance criteria
chatUrlfieldchatUrlis not set