2025 · Active · Author
Floodplain
A Slack bot that catches communication floods at the moment of friction and offers strengths-based coaching.
The problem
Walls of text in Slack don’t get read. They get skimmed, misread, or ignored. The receiver loses the thread; the sender wonders why nobody responded to the important part.
Most communication training treats this as a workshop problem. Attend a session, learn to write clearly, remember to apply it. That model fails for one simple reason: by the time you need it, you don’t have it. The issue is moment of friction. You’ve typed 800 words in the grip of a thought. The workshop was eight months ago. You hit send.
The correction has to happen at the moment of drafting, not at a separate time. And it can’t feel like punishment.
Who it’s for
People who write more than they should before stopping to think. Especially operators whose thoughts arrive in bursts and benefit from a structured pause before they go out. Also the recipients, who get a clearer message.
The population is bigger than it looks. Most Slack-heavy organizations have a handful of people who consistently write long messages and a larger group who have stopped engaging with those messages carefully. The downstream cost is miscommunication, rework, and the slow erosion of async culture.
How it helps
Coaching at the moment of friction, not after.
Type /fp before your message. Floodplain intercepts it, evaluates it against wall-of-text signals (length, structure, context load), and opens a coaching modal. The modal explains specifically why this message might land badly and offers three controls: refine with AI assistance, copy as-is to paste yourself, or send anyway. The user always wins the disagreement. The bot just makes the trade-off visible.
Strengths-based throughout. The framing is never “you wrote too much.” It’s “here’s what someone might miss, and here’s what you have the option to do.” The choice stays with the sender.
What it does
Built on Slack Bolt and the Anthropic SDK. Claude Haiku for fast inline coaching (low latency, low cost), Claude Sonnet for topic analysis (higher quality when the stakes warrant it). Hybrid model approach keeps personal-use cost at $2 to $5 per month.
About 500 lines of TypeScript. The codebase is small by intention: the fewer moving parts, the less that breaks when Slack’s API shifts.
The coaching modal is the product. Everything else is plumbing to get there.
What I learned
The first version was prescriptive. “Your message is too long. Shorten it.” Nobody used it. Not because it was wrong, but because it was shaming. Telling someone they failed before they’ve done anything tends to end the session.
The second version showed the trade-off instead of issuing a verdict. “Here’s what someone might miss” is categorically different from “this is too long.” “Copy Anyway” was made prominent, not buried. Adoption changed immediately.
The lesson generalizes past Floodplain: coaching tools that pretend to be authorities lose. Tools that surface the trade-off and trust the user win. The design problem is always how to give someone useful information without taking their agency in the same move. That principle runs through Valet, through Roost’s routing-around-expert-critique decision, and through Observatory’s information reduction under stress. It’s a consistent design philosophy, not a coincidence.
The second lesson is about scope. Floodplain could be a lot more. Passive monitoring, team-level analytics, multi-tenant, integrations. The MVP is wall-of-text detection and that’s enough. I built what I needed to validate the core interaction pattern. The rest can come if it earns it.
Status
MVP shipped. Roadmap exists: rapid-fire message detection, topic-tangent detection, passive monitoring (opt-in), weekly sender digests, multi-tenant support. Building as a sidebar project. The interaction pattern is validated; next phase depends on whether it finds an audience beyond my own Slack.