Rate Limits and Abuse Prevention
Overview
Live Q&A is designed to be open -- anyone with the join code can submit a question, no account required. That openness creates obvious abuse risks (spam, copy-paste flooding, vote stuffing). TimelyChurch defends against these in three layers:
- Per-device rate limits on question submissions and votes.
- Block participant controls on the host panel.
- Pause / Submissions OFF session-level kill switches.
This page documents each layer, the exact limit values, and what users see when they trip them.
Per-Device Rate Limits
TimelyChurch automatically limits how fast each participant device can submit questions and cast votes:
| Action | Limit |
|---|---|
| Submitting a question | 10 per minute per device |
| Voting (upvoting a question or answering a poll) | 30 per minute per device |
The "device" is identified by the participant's stable browser fingerprint (the same identifier used for vote deduplication and the "this is mine" flag). It is not purely IP-based, which means a household sharing a single internet connection can each post and vote independently up to their own limits.
What Happens When a Device is Throttled
When a device exceeds either limit, TimelyChurch temporarily blocks further writes from that device and:
- Stops accepting new submissions or votes from that device for up to 60 seconds (the limit windows are 1 minute).
- Shows a friendly toast/banner in the participant view that says "You're going too fast -- please slow down."
The participant view disables the submit button for the cooldown period, then re-enables it automatically. Existing questions and votes are not affected; only new writes are blocked during the cooldown.
Why These Numbers
- 10 submissions/min is generous for human participants (one good question per 6 seconds is fast typing) but cuts off any realistic copy-paste spam attack.
- 30 votes/min comfortably covers a participant scrolling and voting through a long queue (one tap per 2 seconds) but stops automated vote stuffing scripts.
If you find legitimate participants hitting the limit, the most likely cause is a shared device (a kiosk in the foyer where multiple people submit from the same browser). In that case, consider adding more devices or pointing participants at a printed QR code so each person joins from their own phone.
Block Participant
When a participant is being disruptive and rate limits aren't enough, the host can block them outright from the host panel. See the Moderation page for the full UI flow. Briefly:
- From any of the participant's questions, tap More -> Block Author.
- Optionally check "Also hide their existing questions from participants."
- Tap Block.
What this does:
- The participant's device fingerprint is added to the session's blocklist.
- They can no longer submit questions or vote on questions or polls.
- They see a red banner: "You have been blocked from participating." They can still view the queue (read-only).
- If "hide existing questions" was checked, all of their previous questions are removed from the participant view (still visible to the host).
Blocks are session-scoped. If the same person joins a different Q&A session for your church, they start with a clean slate -- you would have to block them again. To permanently ban a user across sessions, the church admin needs to address the underlying behavior outside the Q&A tool (since Q&A participants are not authenticated users).
Reviewing and Unblocking
The Blocked filter tab in the host panel lists every blocked device for the current session, showing a partial fingerprint, the timestamp, the reason (if entered), and a one-click Unblock button.
Session-Level Kill Switches
If abuse becomes overwhelming and you need to stop the bleeding fast, the host has two big buttons:
Submissions Toggle (OFF)
Turn the Submissions: ON/OFF toggle in the host panel header to OFF. This stops new question submissions immediately while leaving the queue, voting, and polls intact. Use this when you want participants to keep voting on existing questions but stop adding new ones (for example, when you have 20 minutes left and already have plenty to discuss).
Pause Session
Click Pause in the session controls. This halts all participant write activity -- no submissions, no voting, no poll responses. Participants see a "Session paused -- questions will resume shortly" banner. The host panel still works normally; the host can clean up the queue, then click Resume to bring everyone back online.
Close / Archive
If a session has been hijacked beyond recovery, Close ends it cleanly (preserves all data, marks every active poll closed) and Archive removes it from active lists entirely. Both are reachable from the host panel header. See Archive and Data Retention for what happens to the data afterward.
What Hosts See for Abuse Patterns
The host panel does not currently surface a "rate-limited devices" metric, but you can spot abuse heuristically:
- Many similar-looking submissions in quick succession from the Pending queue (if moderation is on).
- A single author name with many short questions.
- A spike in vote counts on one question with no corresponding spike in participant count.
When in doubt, enable moderation mid-session (the toggle is live -- existing questions stay approved, but new ones go to Pending). This buys you time to triage without disrupting the audience.
Summary
| Defense | Trigger | What the User Sees |
|---|---|---|
| Submission rate limit | 11th submission in 60s from one device | "going too fast" banner, button cooldown |
| Voting rate limit | 31st vote in 60s from one device | vote button briefly disabled |
| Block participant | Host clicks Block | Red banner, read-only mode for that device for the session |
| Submissions OFF | Host toggles | Submission bar hidden, voting still works |
| Pause | Host clicks Pause | "Session paused" banner, all writes blocked |
| Close / Archive | Host clicks Close | "Session ended" message, no further writes |
Previous: Permissions and Roles | Next: Archive and Data Retention