How a bad habit during long debugging sessions turned into SitBlinkSip, an open-source health companion for anyone who lives behind a screen
A few months ago I noticed something strange: my eyes were burning by 3 p.m. every single day. Not from lack of sleep, not from bad lighting — from not blinking. I'd get locked into a bug, stare at a stack trace for twenty straight minutes, and forget one of the most automatic things a human body does.
Turns out I wasn't imagining it. When we focus hard on a screen, our blink rate drops and our blinks become incomplete — and that's directly linked to dry eyes and digital eye strain. On top of that, I was slouching harder the longer I coded, and my water bottle would sit untouched for six hours at a time.
So, being an ML engineer who works with computer vision every day, I did what felt obvious: I pointed my own webcam at the problem.
That's how SitBlinkSip was born — a free, open-source wellness companion that watches your posture, your blink rate, and your hydration breaks while you work, and nudges you the moment one of them slips.
The idea in one sentence
Sit better. Blink more. Sip regularly.
SitBlinkSip runs quietly in the background while you code, write, or design, using your webcam to track three simple things:
- Posture — are you slouching or leaning forward?
- Blinking — are you blinking often enough to keep your eyes healthy?
- Hydration — how long has it been since your last water break?
When any of the three drifts out of a healthy range, you get a gentle nudge — a notification, a sound, or (for blinking specifically) a brief screen blank that forces a reset. No lectures, no guilt-trip pop-ups. Just a tap on the shoulder.
Why I built it as computer vision, not a survey app
There are plenty of "take a break" timer apps out there. Most of them are dumb clocks — they nag you every 20 minutes whether you've been slouching or sitting perfectly upright, blinking normally or staring like a gargoyle. That's not awareness, that's noise, and noise gets muted within a day.
SitBlinkSip instead measures what's actually happening:
- Blink detection uses eye-aspect-ratio (EAR) tracking on your face mesh, the same technique used in academic dry-eye research, to count real blinks and calculate blinks per minute in real time.
- Posture checking looks at head-tilt angle and forward lean/displacement — the two most common signs of "laptop slouch" — and scores your posture continuously instead of guessing on a timer.
- Water reminders run on an independent interval so hydration nudges don't get skipped just because your posture happens to be perfect that hour.
Everything happens on-device. No video is ever recorded or uploaded — frames are analyzed instantly and discarded. If you're the type of developer who instinctively covers their laptop camera with tape (I am), that matters.
The research behind the "why"
I didn't want to build a wellness app on vibes, so before writing a line of code I went looking for the actual science. A few things stood out:
- Reviews of digital eye strain consistently point to changes in blinking behavior — lower frequency, more incomplete blinks — as a real contributor to dry-eye symptoms during prolonged screen use.
- Longer gaps between blinks let the tear film break up before the next blink arrives, which is a big part of why your eyes feel gritty by the afternoon.
- A randomized controlled trial on blink-reminder software specifically found improvements in both blink rate and dry-eye symptom scores among visual display terminal users — which is basically the closest thing to a controlled study of "does nudging people to blink actually help," and the answer was yes.
To be clear: SitBlinkSip doesn't diagnose or treat anything. Digital eye strain has a lot of contributing factors — screen brightness, distance, ambient light, your individual eye health. Blink awareness is just one measurable, fixable piece of that puzzle, and it happens to be the piece a webcam is uniquely good at watching.
What it actually looks like day to day
You open SitBlinkSip before a work session and forget about it. In the background:
- Start working — SitBlinkSip starts watching posture, blink rate, and the clock since your last break.
- Stay focused — you keep coding normally. There's no camera preview shown by default, just a small always-on-top counter.
- Get reminded — the moment your blink rate dips, your posture score drops, or your water timer runs out, you get a nudge — sized to the urgency. A missed blink gets a brief screen blank (urgent, immediate). Posture drift gets a quiet notification (gradual, not urgent). Water is just a friendly ping.
- Build better habits — over enough sessions, the nudges become less necessary because the habit sticks.
As one early tester (a full-stack developer) put it: "SitBlinkSip has helped me maintain good posture and eye health during long coding sessions." That's the entire goal — not another dashboard to babysit, just a quiet second pair of eyes on your own eyes.
Two ways to run it
SitBlinkSip actually ships as two different things, depending on how you like to work:
- The web dashboard — a Next.js + FastAPI + OpenCV/dlib stack you spin up locally with Docker. Great if you want the visual dashboard, charts, and the full research write-up in your browser.
- SitBlinkSip Desktop — a native background app for Linux, Windows, and macOS. No server, no database, no browser tab to keep open — just the webcam, a tray icon, and a floating counter. This is the version built for people who want it to disappear into the OS and just work.
I'll go deep on installing and using the desktop app in the next post — it's the one I personally run all day.
It's open source, on purpose
I built this alone, out of a genuinely annoying personal habit, and I'm releasing all of it — the computer vision pipeline, the API, the desktop app — under Apache-2.0. If you've ever wanted to see how blink and posture detection actually works under the hood, the repo is fully readable. If you want to add a feature, PRs are welcome.
# clone the web dashboard
git clone https://github.com/ishworrsubedii/SitBlinkSip.git
cd SitBlinkSip
docker compose up --build
# or run the native desktop app from source
git clone https://github.com/ishworrsubedii/desktop-sitblinksip.git
cd desktop-sitblinksip
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m sitblinksip_desktop
What's next
I'm not trying to build another SaaS dashboard nobody opens twice. The roadmap is intentionally small and honest about what's planned vs. shipped: deeper session analytics, historical trends over weeks and months, wearable integration, and personalized recommendations based on your own patterns. All of it optional, none of it required to get value from the core loop today.
If you spend more hours looking at a monitor than at another human face most days — which, if you're reading this on a dev blog, you probably do — give it a try. Star the repo if it's useful, open an issue if something's broken, and let me know what nudging feature you'd want next.
- Web dashboard & source: github.com/ishworrsubedii/SitBlinkSip
- Desktop app & source: github.com/ishworrsubedii/desktop-sitblinksip
- Live site: sitblinksip.oxura.dev
Next up: a full walkthrough of installing and configuring SitBlinkSip Desktop on Linux, Windows, and macOS.
Tags: Open Source, Health Tech, Computer Vision, Developer Tools, Productivity

Top comments (0)