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
- 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.
- Chrome Extension (JavaScript): We extracted the trained model's coefficients from Python and ported them into a predict() function in JavaScript.
- 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.
Log in or sign up for Devpost to join the conversation.