v-va*

← return to the collection

03 · browser extension

web locker

pin-lock distracting websites — zero content leaks, zero tracking

browser extension · javascript · open source


artist
fazza abiyyu
date
2026
role
extension development — architecture & ui
medium
JavaScript · Manifest V3 · Chrome Extension APIs · Shadow DOM · WebExtension
status
on view
source code
github
firefox add-on
addons.mozilla.org

statement

A minimalist browser extension that locks distracting websites behind a 6-digit PIN. Zero content leaks, zero tracking — just pure focus. Content script hides the page before anything renders; Shadow DOM lock screen with numpad or keyboard input, auto re-lock on idle, lockout protection, and import/export for lock lists across Chrome, Edge and Firefox.

  • zero leak page hidden at document_start — nothing flashes before the lock screen.
  • cross-browser single manifest.json for chrome, edge and firefox.
  • lockout guard input locks after repeated wrong attempts.
6 digit pin lock
3 browsers supported
0 content leaks
0 tracking

the problem

distraction is a default you have to override

Browser willpower is fragile. Existing blockers are either domain-level (too coarse) or cloud-based (privacy risk). People need something local, instant and invisible that hides the page before the brain even registers it.

the answer

pin before paint

Web Locker injects a content script at document_start that hides the entire page immediately. If the hostname is locked, a Shadow DOM lock screen with a PIN pad appears before any content renders. Wrong attempts trigger a cooldown; correct input unlocks the tab for the session.

exhibited artifact

fig. i — the lock screen · pin pad overlay · shadow dom
fig. i — the lock screen · pin pad overlay · shadow dom
fig. ii — the popup · extension popup · quick lock toggle
fig. ii — the popup · extension popup · quick lock toggle

requirements analysis

functional requirements

coderequirementdescription
FR-01PIN LockLock any hostname; all subdomains protected automatically
FR-02Zero Content LeakPage hidden at document_start before rendering
FR-03Auto Re-LockConfigurable idle timer re-locks after inactivity
FR-04Lockout ProtectionInput locks temporarily after wrong attempts
FR-05Numpad + KeyboardClick or type digits; backspace and escape supported
FR-06Import / ExportBackup and migrate lock lists without an account
FR-07Cross-BrowserChrome, Edge, Firefox — single Manifest V3

materials list

technical inventory

language JavaScript
standard Manifest V3
ui Shadow DOM
storage chrome.storage.local
runtime Content + Background scripts
target Chrome · Edge · Firefox

notable installations

features & integrations

zero content leak

Pin Before Paint

Content script runs at document_start and hides the whole page before anything renders. No flashing, no peeking — just the lock screen.

idle timer

Auto Re-Lock

Configurable idle timeout: the lock screen re-appears automatically after inactivity, so stepping away from a tab stays safe.

brute force guard

Lockout Protection

Too many wrong attempts? Input locks temporarily. Changing lockout settings requires current PIN confirmation.

portability

Import / Export

Backup your lock list to a file, migrate across browsers, or share configurations. No account needed.