Skip to content
SitesNuker — overview of the extension popup

From research to Mozilla Add-ons: a screen-time tool

SitesNuker is a Firefox extension that helps you stop losing hours to Reddit, YouTube, and X — with time limits, hard blocks, and intentional friction. Open source, shipped on Mozilla Add-ons, designed around one principle: the best productivity tool is the one you can’t easily talk yourself out of using.

  • 5.0 add-on rating
  • 5 languages
  • 0 data collected
  • 2 wk idea → launch
Solo — research, design, development
Figma, Claude Code, Firefox APIs

The scroll that never ends

The average person spends nearly 7 hours a day looking at screens, and a significant portion of that time is unintentional — a "quick check" on Reddit turns into 45 minutes, a single YouTube video spirals into an hour-long rabbit hole. Users don’t lack willpower; they lack tools that work with their psychology, not against it. Existing solutions either over-complicate setup, are easy to bypass, or hide basic features behind a subscription. Users give up before they even start.

6h 58m
average daily screen time
~50%
users who feel they spend too much time online
2.5h
average daily time on social media alone

What makes this hard?

Desk research, netnography and review analysis of similar solutions surfaced recurring frustrations:

  1. 01 / 04

    “I lose track of time”

    Users describe entering a flow state on addictive sites. No external cue breaks the loop. By the time they check the clock, it’s too late.

  2. 02 / 04

    “I just disable the blocker”

    Most extensions let users bypass blocks with a single click. There’s no intentional friction. The block becomes performative, not functional.

  3. 03 / 04

    “Setup took forever”

    Power-user tools like LeechBlock require configuring time blocks, regex patterns and multiple rule sets. Most users never finish onboarding.

  4. 04 / 04

    “I have no idea how much I use”

    Without usage data, users can’t set realistic limits. They end up too low (frustrating) or too high (ineffective).

A crowded space with unmet needs

I analysed four popular browser extensions across the dimensions that matter most: setup effort, blocking reliability, bypass resistance, usage feedback and pricing.

  LeechBlock NG StayFocusd one sec Freedom Limit SitesNuker
Setup complexity High — 30 rule sets, regex, schedules Medium — options page with many settings Low — pick apps Low — simple list Low — presets + tap to add
Blocking method Page redirect Page redirect Breathing overlay Calming green screen declarativeNetRequest — browser-level
Bypass resistance Optional password Nuclear option (one-time) Low — tap to continue Low — close tab 20-sec countdown + 1h hard cap
Per-site time limits Yes Yes No Yes Yes
Usage statistics Partial No Yes No Yes
Nuclear focus mode Partial Yes No No Yes
Data privacy Local only Local only Account required Account + subscription Local only, zero telemetry
Pricing Free Free Freemium — $5/mo Freemium — $7/mo Free & open source

Existing tools are either powerful but overwhelming to configure, or simple but easy to bypass. None combine all three: quick setup, effective blocking, and insight into your habits, without requiring an account or payment.

Three core interactions

Before touching any screen, I mapped the three flows that would define whether the product actually works day-to-day: setting a limit, hitting it, and breaking glass when nothing else helps.

Flow A — Setting a daily limit

Happy path, first-time user. The extension should feel useful before any configuration.

  1. 01

    Install

    Extension installs with 6 presets ready

  2. 02

    Open popup

    See site list with 10-min defaults

  3. 03

    Browse

    Timer counts down in real time

  4. 04

    Blocked

    Hard block at browser level

Flow B — Trying to extend time

The intentional-friction pattern. Every step is designed to make breaking your own limit feel deliberate, not automatic.

  1. 01

    Blocked

    User hits limit, sees block page

  2. 02

    Extend?

    User taps “Add more time”

  3. 03

    20-sec wait

    Forced cooldown — must wait and watch

  4. 04

    Decide

    Confirm or cancel. Many walk away

  5. 05

    Hard cap

    Max 1h total per site. No exceptions

Flow C — Nuclear Mode

Instant focus session. Activation is easy; cancellation is not.

  1. 01

    Activate

    Tap Nuclear Mode button

  2. 02

    Pick duration

    5 minutes to 5 hours

  3. 03

    All blocked

    Every tracked site goes dark immediately

  4. 04

    Countdown

    Timer visible in popup, no cancel

  5. 05

    Released

    Sites unblock automatically

From flows to screens

With three flows defined, I translated each step into screens and built low-fidelity wireframes. This stage was intentionally rough. The goal was to verify that every step of every flow could fit within the tight 400×600 px popup space, before thinking about typography, icons, or color. Anything that couldn’t earn its place at low fidelity was cut – before it became a visual design problem.

SitesNuker — low-fidelity wireframes covering the three core flows

Compact UI, maximum clarity

A browser-extension popup is a severely constrained canvas: roughly 400×600 px. Every element must earn its space. The final design prioritises immediate readability: how much time is left, which sites are tracked, and one-tap actions.

Site list
Site list
Main view. Actions are immediately available and statuses are visible at a glance.
Usage statistics
Usage statistics
Weekly trends and per-site breakdowns. Users see at a glance where their time actually goes.
Nuclear Mode — setup
Nuclear Mode — setup
Before activation, the user picks the session length: from a short sprint to a full focus block.
Nuclear Mode — active
Nuclear Mode — active
Once activated, only the countdown remains. No undo, no skip, no other actions. That’s the point.

Why it works this way

Every design decision came back to one principle: the best productivity tool is the one you can’t easily talk yourself out of. Four calls that shaped the product more than anything else:

Decision 1

20-second cooldown, not a password

Passwords are either remembered (no friction) or forgotten (frustrating). A forced 20-second wait is universally uncomfortable: just enough to break the impulse loop without being punitive. Research on implementation intentions shows that even a brief pause before a habitual action significantly reduces follow-through.

Decision 2

1-hour hard cap per site

Without an absolute ceiling, users negotiate with themselves endlessly ("just 5 more minutes" × 12). The hard cap sets a non-negotiable boundary. It’s a design constraint, not a limitation — it reframes the question from "how much more?" to "how do I use what I have?"

Decision 3

Presets over empty states

YouTube, Reddit, Instagram, Facebook, TikTok and X come pre-configured with 10-minute defaults. Users start benefiting immediately: no setup anxiety, no decision paralysis. They customise later, when they understand their own patterns.

Decision 4

Letter favicons instead of external APIs

Most favicon services (Google, DuckDuckGo) leak browsing data. SitesNuker generates colored letter icons locally: no network requests, no privacy compromise. The visual identity stays distinct enough for quick scanning.

Public release

SitesNuker is live on Mozilla Add-ons, open source on GitHub and actively maintained. The extension ships in five languages and has been received warmly by the r/nosurf and digital-minimalism communities that inspired it.

5.0
plugin rating
5
languages
0
data collected
MIT
open source

What’s next

The product is under active development. Three things are on the roadmap. First, session-based insights: not just how many minutes total, but how many times the user came back. Twenty short visits to Reddit is a different problem than one long one. Second, goals with positive reinforcement: celebrating streaks of days where the user stayed within limits. Third, cross-browser support: Chrome’s Manifest V3 has equivalent APIs, and the architecture is already modular enough to make a port realistic.

Back to all projects Next project