Inspiration

Online messages are sent in seconds, but the regret can last for days. CalmSend was inspired by how often small moments of anger, stress, or misunderstanding turn into harsh texts, cyberbullying, or unnecessary fights. I wanted a simple “speed bump” that helps people pause, breathe, and choose better words—without blocking them or judging them.

What it does

CalmSend is a browser extension that adds a short empathy delay before emotionally aggressive messages are sent. It detects negative or aggressive wording while you type. If you stop typing for ~1.5 seconds, it shows a small popup in the top-right that says the message sounds aggressive and gives options:

  • Rephrase: closes the popup and lets you edit (without re-triggering for the same text)
  • Calm down for 30s: starts a guided box-breathing exercise with an animation and timer, temporarily disabling typing
  • Send anyway / Send now: lets you proceed instantly It’s designed to reduce impulsive sending and prevent “heat of the moment” posts.

How I built it

I built CalmSend as a Chrome Manifest V3 extension using:

  • A content script that watches inputs and contenteditable editors on websites
  • A 1.5s inactivity timer to decide when the user has “finished typing”
  • A lightweight NLP-style keyword/phrase detector to flag aggressive tone
  • A custom UI popup anchored to the upper-right corner
  • A 30-second box-breathing module (inhale–hold–exhale–hold) with a simple breathing animation + countdown I also added logic to avoid repeated prompts for the same message while the user is editing. During this hackathon period i was able to make this idea real by actually making the NLP model.

Challenges I ran into

The hardest part was handling modern chat editors (Discord/WhatsApp-style contenteditable elements) and preventing glitches like:

  • The popup reappearing repeatedly while editing
  • Buttons not firing consistently due to complex web app event systems
  • UI overlap issues during breathing animation I solved these with better element detection, safer event handling, per-message “already prompted” tracking, and layout fixes.

Accomplishments that I'm proud of

  • Built a working empathy-delay extension that feels fast and non-intrusive
  • Implemented a real guided breathing exercise (not just “inhale/exhale” text)
  • Added “no-repeat for same message” logic so users can actually edit peacefully
  • Created a clean top-right UI with an X close button and smooth flow

What I learned

I learned how tricky real-world browser extensions are—especially with modern, heavily scripted web apps. I also learned how small UX decisions (timing, wording, button labels, visual pacing) decide whether a wellbeing feature feels helpful or annoying.

What's next for CalmSend

Next, I want to make CalmSend smarter and more personal:

  • Improve tone detection using a small local ML model (optional) instead of only keywords
  • Add settings: sensitivity slider, custom cooldown length, whitelist/blacklist sites
  • Add “rewrite suggestions” (gentler alternatives) and a “send later” scheduling option
  • Collect privacy-friendly feedback like “Was this helpful?” to improve prompts
  • Extend beyond text: detect ALL CAPS spam, harassment patterns, and repeated targeting

Built With

Share this project:

Updates