π‘ Moderation and safety
Chat on a projector needs more than good intentions. teachChat layers its safety tools: an automatic filter screens everything first, and you hold every lever above it. Nothing here is paywalled.
The built-in auto-filter
Every student message is screened before it posts anywhere: chat, note proposals, and poll answers all pass through the same check. Your own messages are never filtered.
The filter catches profanity, slurs, sexual content, drug talk, hate speech aimed at groups, threat language, harassment aimed at a classmate's screenname, and lewd ASCII drawings and emoji. Behind their own toggles it also catches spam (copy-paste art, character spam, all caps, repeated messages), links, and PII such as phone numbers and email addresses. It defeats the usual evasions too: spaced-out letters, number-for-letter swaps, stretched letters, lookalike characters, and words split across messages.
Two lines it draws on purpose:
- Identity words are never filtered. "Gay", "trans", "lesbian", "queer", and "lgbtq" always pass. Slurs, and hate aimed at people, never do.
- Advocacy is not hate. Political speech about a group passes; calling for violence against any group blocks, every time.
The filter is deliberately not a dragnet, and it won't catch everything. Back it up with the tools below: review mode, slow mode, blocked words, and timeouts.
Self-harm and threat language block too, and that block is a feature: the message reaches your eyes instead of the projector, so a cry for help surfaces to the adult in the room.
You can also add your own blocked words: one word or phrase per line (up to 100), for nicknames, inside jokes, or this week's insult. Your terms get the full evasion treatment automatically.
Strikes and auto-timeout
Each blocked message is one strike, shared across chat, notes, and poll answers. Strikes reset every session. With "Auto-timeout after 3 strikes" on, every third strike benches the student automatically.
Timeouts escalate: 10 seconds, then 30, 90, 270, capped at 10 minutes, with a small point deduction that grows per infraction (capped at 5). You can also hand out a timeout yourself straight from a message, which removes that message from view too. In the roster, a timed-out student glows amber with a countdown, and a forgive button ends the timeout and resets the ladder back to 10 seconds.
Slow mode, freeze, and mute
Slow mode paces the room without punishing anyone: pick 1 message per 5 seconds up to 1 per 2 minutes, and students who send too soon just get a "wait a moment" with the seconds left. No strike.
Freeze pauses the whole chat with one button. If the last teacher disconnects during a session, the chat freezes on its own so it never runs unsupervised; unfreezing is always a deliberate press.
Mute silences one student until you unmute them (their roster row glows red). Muting from a specific message also pulls that message from every feed. It's a soft delete: the message stays in your log for the "let's talk later" conversation.
Review mode
Turn on "Review before post" and every message waits in a holding queue until you approve it. Approve one at a time or all at once; reject quietly drops a message with no strike and no public trace. Unreviewed messages die with the session.
Review mode is great for week one while norms take root, and heavy for everyday use. Most classes graduate to the filter plus slow mode.
Deleting and pinning
Hover any message to delete it from every screen, or pin it to the spotlight. Up to 5 messages can be pinned at once; past that, the oldest pin makes way, and pinning a pinned message unpins it.
What you see
Every block lands in your feed as a system line: who, what, and why, visible only to you. Names stay screennames throughout; revealing who a screenname belongs to is a separate, always-logged step covered in Privacy. New students also always wait for your approval the first time they join: see Join approval.