I've loved computers for as long as I can remember. Games, building things, staying up way too late just trying to figure out how something worked. That same curiosity is also how, very young, I ended up finding adult content online. What started as curiosity turned into something I repeated morning and night, for years, until it didn't feel like a choice anymore. It felt like something that had a hold on me. I'm not going to dress that up. There was a point where I honestly didn't think I could turn it around.
At some point I decided enough was enough. I did what a lot of people do. I watched videos of people who'd gotten through it, read other people's stories, leaned hard on my family, and prayed. Honestly, it worked, and it's still what works for me today. But there was one gap none of that could close. I could still open a browser on my own computer, any hour, the second temptation came back, and nothing stopped me.
So I built the thing that was missing.
Why I built my own instead of using one that existed
I tried other blockers first. Most either didn't cover enough ground, or they put the parts that actually matter (real-time image scanning, stronger blocklists, protection you can't just switch off in a bad moment) behind a subscription. That never sat right with me. A safety tool that only really works for people who can pay for it isn't much of a safety tool. So I built my own, and decided from day one it would never charge for protection.
That became BlockNSFW. Open source, MIT licensed, published for Chrome and Firefox, and Edge too since it's Chromium-based, last year.
What's actually running under the hood
BlockNSFW is a Manifest V3 extension. No server processes your browsing, no account, nothing about the filtering itself ever leaves your device. A few layers work together to make that happen:
-
Domain blocking against a curated list of tens of thousands of entries, with a hostname smart filter that covers multiple languages (Chinese, Korean, Russian, Arabic, Thai, plus transliterated Latin like
bokepandsikis) and understands punycode, soxn--encoded hostnames don't slip past it. - On-device AI image classification. An offscreen document runs the model over WebGL against images actually rendered on the page. Nothing gets uploaded anywhere. It can't. That's just not how it's built.
- SafeSearch, forced on, across nine search engines: Google, Bing, DuckDuckGo, Yahoo, Brave, Ecosia, Qwant, AOL, and Presearch.
- Optional DNS-level filtering through Cloudflare for Families, Reddit NSFW subreddit detection, and toggles for Facebook and Instagram Reels.
The feature I care about most: protection from yourself
Here's the problem no blocklist can solve. The person most likely to disable this extension is the same person it's protecting. In a bad moment, one click on "disable" undoes everything. So the latest release, 1.7.3, added a second layer that isn't about blocking sites. It's about blocking yourself from quietly turning protection off.
A PIN now gates every change that weakens protection: removing a blocked word, lowering AI strictness, turning off DNS filtering, whitelisting a domain. On top of that, an optional access code adds real friction. It's a random 32, 64, or 128 character code that the extension shows you in full, and you have to retype it by hand. No copy paste, no drag and drop, and if you get it wrong, that code is gone and a new one takes its place.
It isn't a secret. It's sitting right there on the screen the whole time. The point was never secrecy, it's friction. Typing a random 64 character string out by hand, on purpose, in the exact moment you're trying to weaken your own defenses, is enough to make you stop and think for a second. Meanwhile, turning protection up (adding a word, raising strictness) never asks for anything at all. Making it harder to protect yourself more would defeat the whole point.
How thousands of people actually found this
There's no marketing budget and no growth hack here. Almost all of it has been organic. Someone searches the Chrome Web Store or Firefox Add-ons for something like "block adult sites," reads the reviews, and installs it. That's really the whole channel. It's been live a little over a year, it's still small next to the big commercial blockers, and it grew slowly. But it grew on trust, not ads.
What I didn't expect
I built this to solve my own problem. What I didn't expect was the email. People writing to say it gave them their mornings back, or helped a partner or a teenager in their house, or was the one thing that held when willpower alone hadn't been enough. Some of them started donating through Buy Me a Coffee, completely unprompted. Last week, someone emailed asking if they could sponsor me through GitHub, something I never once expected when I started. I still don't really know what to do with that. I built a tool for myself, and somewhere along the way it turned into something other people lean on too.
Why it's free, and why it'll stay that way
BlockNSFW is, and will always be, completely free. No premium tier, no feature locked behind a paywall, no "upgrade to unlock real protection." If someone wants to support the work, Buy Me a Coffee is open, but that's a thank you, not a ticket. I built this because I needed it, and I couldn't afford for it to fail me. Charging someone else for the version that actually works isn't something I'm willing to do.
Try it, break it, tell me what's wrong with it
It's fully open source, and issues and PRs are always welcome, especially anything that catches a false positive or a missed site.
And if any part of what I described above sounds familiar, I want you to know it does get better. Building this was part of how I got there.
If you're in the middle of this right now
I want to say this straight to you, not just as a way to explain the extension. This tool can only help so much. It can block a website. It can't block a craving, and it can't do the hard part for you, that part is still yours to do. But I spent a long time believing I couldn't turn this around, and I was wrong about that. Wherever you are in it right now, I believe you can get through this. You can overcome it. Building this was part of how I did, and I hope it can be part of how you do too.
Top comments (0)