Skip to content
monolab— home

Illustration: under the horizon, an endless grid of thumbnails comes toward you the way a feed does when you scroll it. As the pause runs the pull slows to a calm drift. Turning back sends the grid away toward the horizon.

BlockNSFW · porn & adult content blocker · 2.0Is this where it starts?

Gateway · instagram.com/explore

An example · the real pause is 5 to 60 seconds, 12 hereEach line is a time you came to the door and turned backGo on opens the site for 15 minutes

You marked Instagram Explore as one of the ways in. Take a minute before you decide.

That is the pause BlockNSFW puts in front of the sites you name, and every Not tonight is counted. The rest of this page is everything else I built for the hour it's hardest.

Gateways only ask on an ordinary day. In risk hours and Storm Mode they stay closed, and there is no Go on.

  • Blocks adult sites before the page paints
  • New in 2.0 · a pause before the places where it starts
  • Free · no account

Install freeChrome★ 5.0Firefox★ 4.3EdgeGoogle Play


01

The hour

Most of the day a blocker is never tested. It matters for an hour or so, usually late, when the person trying to get round it is the person who installed it. Version 2.0 is built for that hour.

New in 2.0 · free for everyone

Risk hours, unless you set others

11 PM – 2 AM

The stretch the four stages below are set in.

In the order the evening meets it

Late the morning after

  1. 01Before it starts

    • Risk hours

      Your hardest hours of the day, 11 PM to 2 AM unless you set others. In them every strictness level goes up, image search is blurred, and any change that loosens protection has to wait.

    • Gateways

      The sites where it tends to start. Six are built in (Instagram Explore, Reddit, image search, X search and Explore, TikTok, YouTube Shorts) and you can add up to 50 of your own. Opening one shows a pause of 5, 10, 30 or 60 seconds, then Not tonight or Go on, which opens the site for 15 minutes. In risk hours and Storm Mode they stay closed.

    • The storm warningSupporter

      The popup can say “Tonight looks like a hard one” and offer Storm Mode until a time you pick, 1 to 12 hours ahead.

  2. 02At the door

    • Your own words

      Your plan, a note to yourself, and someone to call. The blocked page shows them first, with a 10 or 20 minute wait-it-out.

    • Held at the door

      The blocked page says which of the six doors stopped the page. When it was a word or an entry of your own, it names that rule and links to where you change it.

    • The address stays hidden

      The blocked page shows the address as dots. It is never shown and never saved.

    • Proof it passesSupporter

      The wait-it-out becomes a 20-minute dial with a dot for each urge you waited out, and a line saying when it usually passes for you.

  3. 03When you want it off

    • How it turns off

      Simple, Pause first, or Strict, the default. Strict asks you to type a sentence first: the full one of 164 words, a short one of 41, or your own, in any language, of at least 30.

    • The Pact

      You choose a wait: 15 minutes, an hour, a day or three days. Any change that loosens protection has to wait it out, even with the PIN, and making protection stronger never waits. The wait is checked against a server's clock, so changing the computer's clock does not skip it.

    • A friend holds the key

      Someone you trust keeps a six-digit code in their authenticator app, standard TOTP, and 8 recovery codes. Only their code lets a change through early, and they never see your browsing. If you want, a PIN only they know as well.

    • Storm Mode

      For 1, 4 or 12 hours every layer goes to its strongest, image search is blurred, and nothing can be loosened until it ends. Not even with your friend's code.

  4. 04After

    • After a slip

      A short page, reached from the popup. A slip costs one day, never your progress, and the page suggests what would help next time.

    • Days kept

      Statistics lead with the days you kept, so one bad night is one day, not the whole count. Your current and longest run are there too.

    • Your numbers

      Time saved, counted at five minutes a block, the sites stopped most, the last seven days, and the times you stopped at the door.

    • Your week

      Every Sunday evening, a read-back of the week, drawn day by day.


02

What it blocks

Most adult-content blockers work from a list of domains. Lists go stale in days, and they only ever knew the English-language web. The sites that matter to someone trying to stop are the ones not on any list.

search results — 6 pages
••••• ••••••safesearchoff
••••••••••.com
held
en.wikipedia.org
•••••••.net
held
••••••••••••.xyz
held
docs.python.org
••••••.to
held
nothing filtered0 of 6 held

The switch is live. Try it both ways.

About 205,000 known adult sites are stopped before they load. Models on your device read the rest.

Every decision is made in your browser, and there is no account. The pages you visit are never sent to me.

01Before the page loads

  • About 205,000 sites, before first paint

    Known adult sites are stopped by the browser's own request engine, so the page never loads rather than being hidden after it. The list updates itself about twice a day.

  • Hostnames in six writing systems

    Adult hostnames in Chinese, Korean, Russian, Arabic, Thai and transliterated Latin, including internationalised domains that arrive as punycode. A list built only from English misses most of the web.

  • Through Translate and the Wayback Machine

    A site opened through Google Translate or the Wayback Machine is checked as the site itself, even when one is wrapped inside the other.

  • DNS protection, if you want it

    Off by default. Turned on, lookups go to Cloudflare for Families, AdGuard DNS Family, CleanBrowsing or a resolver of your own.

02In search

  • SafeSearch, enforced

    Family-safe results are forced on Google, Bing, DuckDuckGo, Yahoo, Brave, Ecosia, Qwant, AOL Search and Presearch, with Yandex in family mode. On DuckDuckGo and Brave it is locked.

  • Engines it can't reach are closed

    Startpage, Mojeek, Kagi, MetaGer and the other engines SafeSearch can't control are blocked by default. Kiddle, KidzSearch and Swisscows stay open.

  • Results, cleaned

    Blocked results are removed or replaced by a notice, with one line saying how many were held. On Google, Bing, DuckDuckGo, Brave, Yahoo and Yandex each result also gets a Block button, which reads the real site behind a redirect link.

  • Help stays open

    Searches such as “how to quit porn” or “porn blocker” open on every engine, and so do recovery sites. A search that asks for more, like “quit free porn”, is still held.

03On the page

  • Inside frames, and images too

    Filtering reaches into embedded frames, and images from a site you blocked are blocked wherever they appear. The count in the page says what was held: images, videos and frames, and from how many sites.

  • Page text, read locally

    For pages no list knows, a small model reads the words, title and description on your machine. 2.0 made it smaller and faster, and text alone can block a page again. Reading page text has its own switch. Still marked beta.

  • Image scanning without upload

    Optional. Images are classified on your device, with the filter at Strict, Moderate or Lenient and the model's own strictness at Relaxed, Balanced or Strict, on every site if you want, with a list of image sites you trust. A second, more accurate model can be downloaded once.

  • Social feeds

    Posts X marks as sensitive, Mastodon posts with an NSFW content warning, and posts that link to adult sites are hidden. NSFW communities on Reddit are blocked, and Facebook and Instagram Reels can be hidden.


03

In motion

The 2.0 film

BlockNSFW 2.0 is a free browser extension that blocks adult sites, and helps most in the moment when it's hardest. For Chrome, Firefox and Edge.

60 seconds. Nothing loads until you press play.

On YouTube

04

Yours to set

Your own lists on top of the built-in ones, locks on the settings, a popup for the moment you need it, and a record kept in your browser.

Your lists

  • Subscribed lists in uBlacklist format, large ones such as OISD's NSFW list included
  • Your own blocked words, with patterns such as /p[o0]rn/ and rules for page titles
  • A whole top-level domain at once, such as .xyz
  • One part of a site, blocked or allowed: google.com/search, or reddit.com/r/NoFap and not the rest of Reddit
  • Comment lines, so a list can say why

Locks

  • A PIN, kept as a salted PBKDF2 hash. Five wrong tries lock it for a minute, doubling up to an hour
  • An access code as well as the PIN
  • Extension Guard, free and open source, which makes the extension hard to remove on Windows
  • Whether it runs in private windows, with a link to the browser's own setting

The popup

  • Block the site you are on, or only its searches on Google and Yahoo
  • Unblock a site for 15, 30 or 60 minutes, a number of your own, or for good
  • Start Storm Mode
  • A notice when there is an update

Your record

  • Statistics, and an audit log kept for 30 days, with search, filters and a CSV export
  • A count on the toolbar icon, or inside the page instead
  • Tools for the allowlist
  • Everything backed up and restored in one file. The PIN and the Pact are never in it

Setup

  • A setup wizard on first install, which also gives the family DNS addresses that cover every app on the device
  • Your own blocked page, by URL or as HTML
  • Light, dark or system theme

Other people

  • Report a site that got through, as adult, gambling, violence or other
  • Share your story anonymously: up to 2,000 characters, one a week, read before it appears
  • Read other people's stories, and say when one helped

05

Supporter

Protection is the same for everyone, and paying never makes it stronger or weaker. Supporter is optional: it adds the parts that walk through the month with you, and it keeps the project going.

Free

For everyone

  • Every layer of blocking
  • Everything for the hard moment: gateways, the Pact, a friend's key, Storm Mode, risk hours and your own words
  • Your own lists, locks, statistics and backups
  • The 30-day path, days 1 to 7
  • The Classic blocked page

Supporter

$4.99 a month · $29.99 a year · $89.99 once

  • The whole 30-day path
  • The evening check-in, Your good days and When it's hardest
  • A letter each month, and a year view
  • A photo and a message in your own voice, for the hard moment
  • Proof it passes: the wait drawn as a dial, one urge at a time
  • The storm warning in the popup
  • Your progress on every computer, through browser sync
  • Supporter looks: true black, and the Ink, Plum and Graphite accents
  • Four more blocked-page designs: Calm, Verse, Motivation and Play

How to join

Open Settings › Supporter in the extension. Payment is through Polar, and the code you get unlocks it with no account, on up to three browsers. Monthly and yearly plans can be cancelled any time. This is the browser extension's; BlockNSFW for Android has its own, called Pro, in the app.


06

On the phone

The same decision, one layer lower

On Android there is no extension model, so the app guards in two layers. A local VPN sees every app's lookups and answers the blocked ones on the phone; the ones it allows go on to Cloudflare's 1.1.1.1 for Families, over encrypted DNS. A browser filter reads the address bar and the search typed into it. Either layer can be turned off, but not both.

Google Play

Version 1.18.5 · free, no ads, no account, no analytics

  1. 01Lookups an app sends to a public resolver of its own, such as Google, Quad9 or AdGuard, are pulled back into the filter and counted as bypass attempts.
  2. 02About 91,000 adult hosts are built in and updated daily, with a blocklist and allowlist of your own.
  3. 03SafeSearch on Google, YouTube (Strict), Bing, DuckDuckGo and Yandex, on any network, while the VPN is on.

Blocking

  • Block any app, and in one tap the ten browsers that could get around the filter
  • A single ambiguous search word gets a pause you can continue past, not a block
  • After a block the tab goes to a safe page, and a browser the app can't read is blocked after 45 seconds of use
  • Apps that don't work through a VPN can be let past it, one by one
  • Block notifications that don't name the site and never show on the lock screen

Locks

  • A turn-off delay, from 1 minute to 72 hours or up to 30 days, on every change that weakens protection
  • A PIN with a recovery code. Resetting it takes 24 hours, or 7 days when someone else holds it
  • The Pack: up to five people hold the key, through a code in their authenticator app, with no server in between
  • Uninstall protection, a guard on Android's VPN dialogs, and Block risky settings, in beta
  • A Quick Settings tile that can only turn protection on
  • Backup and restore in one file. The PIN is never in it, and an import can't weaken protection

Your evenings

  • Bedtime lockdown, 10 PM to 6 AM, or schedules of your own that only ever add protection
  • Focus: for 25 minutes up to 4 hours, only the apps you allow will open
  • Need a moment: Breathe, My why, Ride it out for 3 minutes, Instead, and where to find real support
  • A block screen that starts with “Take a breath”

Your progress

  • A streak with a day's grace, and a daily check-in
  • The Aegis, a shield that grows over 365 days and never shrinks after a slip, and 14 milestones that earn looks: four accent colours, two shields and two icons
  • Activity: the last seven days, time protected, what was blocked most, and every time protection went off
  • Protection strength, a checklist with a test that the filter really blocks
  • Letters from other people further down the road, and one of your own every seven days, anonymous and read before they appear
  • Home-screen widgets for your streak and status, and for Focus

Pro, in the app

Pro adds Fresh start, Hard times and Triggers, a monthly summary and a year in review, time protected history, a calendar widget, a CSV export, a photo on the block screen, a quote of the day and a black theme. Prices come from Google Play. There is also a Supporter Pack of looks and a tip jar. Nothing you buy changes what is blocked.

In testing for 1.19

A 90-day path, Discreet mode with a plain name and icon, blocking the search engines SafeSearch can't reach, My plan, and progress reports. None of it is on Google Play yet.


07

What it doesn’t claim

A blocker that only lists what it catches leaves the hard part out. Here is the rest.

  1. 01

    The text model is still beta

    It reads the pages no list knows about. 2.0 made it smaller and faster, and it is still marked beta in the extension.

  2. 02

    Some requests do leave your browser

    The pages you visit are never sent to me. What does leave: list updates from GitHub about twice a day, a check of a server's clock while a Pact wait runs, DNS lookups if you turn that on, a site you report, a story you post with a random device ID, and Supporter code checks with Polar and monolab.dev. The privacy policy lists every one.

  3. 03

    It guards the browser

    An extension sees only the browser it is installed in, and Extension Guard, which makes it hard to remove, is for Windows only. For the whole PC there is Warden, and on Android the app covers every app on the phone.

  4. 04

    YouTube isn't filtered by the extension

    The extension does not put YouTube in Restricted Mode. On Android, YouTube runs in Strict mode while the VPN is on.

  5. 05

    On Android, the VPN carries lookups only

    Apps you let past it, Android Auto, Android's Private DNS or a second VPN can route around it, which is why the browser filter is there too. After a restart it comes back if the VPN permission is still granted, and Android's own Always-on VPN is a switch you turn on; the app shows you how.

  6. 06

    Things still get through

    No list or model catches everything. There is a way to report what got through, in the extension, and I read what comes in.


08

In their words

“Works well on most sites, worked to fix my addiction. TYSM Dev <3”
Firefox user · Firefox Add-ons

From the store reviews, unedited

  • “This one is the best. Not much that comes through. In Orion browser you can get around some porn blockers and still load the page, but you can't get around this one. Works very well.”

    Jacco Pippel · Chrome Web Store

  • “Just wanted to say, this is extremely helpful. Keep up the good work, dev! Thank you so much, and God bless!!!”

    RagePhoenix7 · Firefox Add-ons

  • “This is the best, hands down, NSFW blocker I have used. Great job man.”

    goxy701 · Firefox Add-ons

  • “Stable, lightweight, and reliable.”

    Anuran Roy · Chrome Web Store

  • “Very useful tool if you want to stay away from adult content online. Highly recommended.”

    Quang Phan · Chrome Web Store


09

Install

Next

Sieve

content filter & site blocker

Platforms
Chrome · Firefox · Edge · Android
Users
3,000+
Rating
★ 5.0 Chrome · ★ 4.3 Firefox
Blocklist
about 205,000 sites
Classification
on device
Account required
none
Price
free · Supporter optional
Android
free · Pro optional
Source
★ 60