🌱 teachChat guide Open teachChat β†—

πŸ›‘ 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.

Where these controls live: open πŸ’¬ Chat preferences in your teacher console. Every switch on this page is there, and every one of them is per class, so tightening third period does not touch first period. The exceptions are noted where they come up.

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. Links get their own switch: πŸ”— Block all student links. Spam (copy-paste art, character spam, all caps, repeated messages, and flooding) and PII such as phone numbers and email addresses run quietly in the background at their defaults, with nothing to turn on. 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:

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.

Flooding is a strike too, and it is the one you will actually see. More than 5 accepted messages in 8 seconds reads as spamming the projector rather than participating, so it strikes even though nothing about the messages was rude. Excited students hit this during a fast discussion, and the timeout ladder is doing its job when they do. Slow mode is the gentler tool if a whole class is racing: it paces everyone without handing out a single strike.

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.

When a student needs to tell someone

Filters catch words. They do not catch a classmate being cruel in a way that reads as perfectly polite, and they never catch what happens outside the chat.

So every student has a 🚩 Report abuse link on their own screen. A report sends a snapshot of the surrounding conversation, so whatever happened can be read in context rather than as one stray line, and it reaches teachChat directly.

You can also write to abuse@teachchat.app yourself. It is a separate inbox from general support on purpose: a report involving a student's safety should never sit in a queue behind a feature request.

Reports there are read as fast as one person can read them, which is not the same as around the clock. When a student needs someone right now, these are staffed every hour of every day, free and confidential:

Students see this same list inside the report window, so a kid who opens it looking for help finds a number before they finish typing. Worth saying out loud to a class once, too, so they know the numbers exist and that telling you is always an option as well.

Tell your students it exists. The single most useful thing you can add to it is the part software cannot do: that they should also tell you, or another adult they trust, in person. Reporting is a signal, not a resolution.