Inspiration
We’ve all been there, you open Instagram for "just a second" and emerge 45 minutes later, feeling like a digital zombie. Existing site blockers are too easy to bypass, you just click "ignore for 15 minutes" and keep scrolling. We wanted to create something you couldn't ignore. We wanted to build a tool that makes doom-scrolling so physically and mentally frustrating that doing your actual work feels like a relief.
What it does
DoomLag is a browser extension that monitors your access to "dopamine-trap" sites (YouTube, Instagram, TikTok and Reddit).
The Trap: When you visit a blacklisted site, the screen slowly blurs into oblivion before redirecting you to a "rehab" page.
The Penance: To get back to your original page, you must complete some tasks.
The Punishment: Even if you pass the task, you return to your site with a laggy, unusable nightmare.
How we built it
The core is a Vite-based Chrome Extension.
React for the complex UI logic in the task components.
Content Scripts handle the DOM manipulations, including scroll-jacking, global CSS injections to hide cursors, and blur overlays.
Background Workers manage the state handoff between the original site and the extension’s internal pages, ensuring the "Return-to-URL" logic persists even after a redirect.
Tailwind CSS was used to create the high-contrast, 'chaotic' aesthetic.
Challenges we ran into
The biggest technical hurdle was the "infinite loop." If a user returns to a page, the extension wants to blur it again. We had to implement a robust URL-parameter-state system (isLaggy=true) to tell the content script: "They’ve already been punished; now just make it laggy." Additionally, bypassing modern browser optimizations for smooth scrolling required aggressive event-listener hijacking (e.preventDefault()) to ensure our "heavy" scrolling felt authentically terrible.
Accomplishments that we're proud of
We brainstormed the task effects by ourself and the excruciating pain that one has to endure to finish them is something we are quite proud of.
What we learned
This was our first time designing and implementing a browser extension. So, we learned the whole process along with Chrome Extension Manifest V3 lifecycle.
What's next for DoomLag
Give users more control to choose how much torture they want to endure!
Built With
- javascript
- manifest
- react
- tailwindcss
- vite
Log in or sign up for Devpost to join the conversation.