Inspiration

We all have terrible posture and stare at our screens for hours without taking breaks. We wanted a cute little buddy that helps us build better habits without our camera feed ever leaving the laptop.

What it does

Nubla watches through your webcam and gently reminds you to sit up straight, take 20-20-20 eye breaks, stop touching your face, and breathe through your nose. It also scores your day so you can track your progress and compare streaks with friends.

How we built it

We built Nubla as a local-first Electron + React app that uses MediaPipe to analyze your webcam on your own device, and we wrote a custom rule engine that turns those signals into posture, eye-break and breathing nudges. For the community side, we built a Hono API on Tiger Data Postgres that syncs only opt-in daily aggregates (never video), and it powers a leaderboard site and anonymized trends in Databricks.

Challenges we ran into

Timing the reminders was hard: too many and they get annoying, too few and they don’t help, so we added sustained-duration checks and cooldowns. Tuning the detection was tricky too. For example, reading the bottom of the screen first counted as “looking away,” and normal fidgeting drowned out the tiny shoulder movements we tried to use to measure breathing.

Accomplishments that we're proud of

We have a fully functioning app that works end to end, from live webcam tracking to personalized nudges to a community leaderboard, and all the video processing stays on your own device.

What we learned

We learned that a webcam can’t see everything, so being honest about what we can and can’t measure matters as much as the detection itself. We also learned how to split one project across a team, using shared schemas so we could each build our own piece at the same time.

What's next for Nubla

We want to improve breathing detection, add stretch suggestions during breaks, give the Nubla character more personality, and let users share custom habit checks with each other.

Built With

Share this project:

Updates

Submission history