Inspiration

We've all felt that 🤢 "mindless scroll" feeling. Current wellness apps block everything, but what about healthy chatting? We built a smart coach that can finally tell the difference.

What it does

Our extension analyzes your behavior in 30-second slices.

If you're "Passive" (scrolling), it applies consequences to nudge you.

If you're "Active" (typing, engaging), it silently resets, supporting healthy connection.

How we built it

  1. ML Model (Python): We couldn't find a real-world dataset, so we generated our own synthetic data in Python to simulate "Active" and "Passive" users. We used scikit-learn to train a Logistic Regression model.
  2. Chrome Extension (JavaScript): We extracted the trained model's coefficients from Python and ported them into a predict() function in JavaScript.
  3. Data Collection: A content_script.js runs on the page, tracking 6 key features (keystrokes, clicks, scrolls, idle time, etc.) to feed into our in-browser model.

Accomplishments that we're proud of

We successfully ported a Python ML model to run entirely on the client-side in JavaScript. It's fast, 100% private (no user data ever leaves the browser), and proves this concept is viable without a heavy server backend.

What we learned

  • What ML is: We learned that ML isn't magic; it's a powerful tool for pattern recognition. An ML model can learn the subtle, nuanced differences between a "Passive" user (scrolling) and an "Active" one (typing), a context that simple if/else rules could never understand.
  • The effects of doom scrolling: We learned this isn't just a bad habit; it's a normalized behavioral loop with documented consequences. Research directly links this passive consumption to measurable increases in anxiety, depression, and poor sleep. This cemented our belief that an "intelligent coach" is a necessary tool for digital healthcare.

What's next for LockedOut

Our goal is to collect real data and expand to the phone as a whole for a holistic view of the user, including personalized limits and consequences.

Share this project:

Updates