Mobile Development · 2026
AntiDoom
An open-source, offline Android app that breaks the doomscroll loop by counting the short videos you actually watch on Reels, Shorts and TikTok.
- Flutter
- Kotlin
- Riverpod
- Accessibility Service
- MethodChannel
- Next.js

Overview
AntiDoom is a privacy-first Android app built to break the doomscrolling habit in short-video feeds: Instagram Reels, TikTok, YouTube Shorts, Facebook Reels and X. A small floating counter sits on top of the feed, so you always know how many videos you've watched today, and the app steps in with a check-in when it's time to stop.
Everything runs on the phone. There are no servers and no analytics, and the release build doesn't even request internet access. The full source is public on GitHub, and the product site lives at antidoom.app.
Counting videos, not scroll events
Most screen-time tools count swipes, which inflates the number and feels unfair. AntiDoom recognises which video is on screen from a fingerprint of the creator name and caption, and counts distinct videos:
- Swipes that bounce back, comment scrolling and quick flicks past a video (under 750 ms) are ignored.
- Scrolling back to a video you've already seen doesn't count it twice.
- Only a hash of the fingerprint is stored, never the text itself. DMs, chats and typed text are never read.
Features
- Floating counter: a draggable pill at the top of the screen with a little brain whose face changes with today's count, from calm to tired to fried.
- Check-ins and hard block: a check-in every N videos (keep going, stop, or snooze until tomorrow), plus an optional hard block that locks feeds for the rest of the day.
- Daily dashboard: today's total, number of breaks and a per-app breakdown.
- Onboarding: language (English or Indonesian), apps to watch, check-in or block mode, then permissions.
Screenshots





Architecture
The heavy lifting happens natively in Kotlin, and the UI is Flutter, with the two talking over a MethodChannel:
- Accessibility Service detects short-video feeds and builds the per-app video fingerprints.
- Accessibility overlay draws the floating counter and the check-in and block screens, so the app needs no "display over other apps" permission.
- Foreground service keeps tracking alive on Android 14+ and against aggressive OEM task killers.
- Flutter + Riverpod power the dashboard, settings and onboarding, with daily counts kept in local storage.
What I built
I designed and built AntiDoom end to end: the product idea and UX, the native Kotlin tracking engine, the Flutter app, the brand and store assets, and the bilingual marketing site at antidoom.app built with Next.js.
Next project
Ekspor Yuk Mobile App