Plans and limits
Speechwave has three plan tiers, free, pro, and org, and two things they gate: how many people can join a talk at once, and how many full sessions can be recorded in a month.
| Feature | Free | Pro / Org | Enforced where |
|---|---|---|---|
| Participants per talk | Capped, see pricing | Unlimited | ReactionChannel.join/3 |
| Full sessions per month | Capped, see pricing | Unlimited | The channel's start_session handler |
Pro and org accounts share the same unlimited treatment on both of these, so if you’re comparing plans for participant or session caps, the only real distinction is free versus paid. Current numbers live on the pricing page rather than here, since this chapter is about how the checks work, not what the thresholds happen to be today.
Where each limit is enforced
The participant cap is checked when the Chrome extension tries to join the reactions Channel, against a live headcount from Presence. A join beyond the limit fails with a capacity error. See WebSockets for the full join check chain.
The session cap is checked when the extension sends a start_session message (see Talk sessions). A session only counts toward that monthly total once it’s run long enough to be considered “full”, short recordings don’t count against it.
start_session is rejected with a session-limit error once the monthly cap is hit, and the dashboard reads the same count at page load so a speaker can see their usage before they hit the wall.