<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://adultxblocker.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://adultxblocker.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-08-14T14:07:29+00:00</updated><id>https://adultxblocker.com/feed.xml</id><title type="html">AdultXBlocker</title><subtitle>A free Chrome extension that sets up iOS Screen Time with a randomly generated passcode you never see, backed up encrypted. Choose how many days the block stays on — until they&apos;re up, it stays on.</subtitle><entry><title type="html">Why the passcode is one you never see</title><link href="https://adultxblocker.com/blog/a-passcode-you-never-see/" rel="alternate" type="text/html" title="Why the passcode is one you never see" /><published>2026-08-14T00:00:00+00:00</published><updated>2026-08-14T00:00:00+00:00</updated><id>https://adultxblocker.com/blog/a-passcode-you-never-see</id><content type="html" xml:base="https://adultxblocker.com/blog/a-passcode-you-never-see/"><![CDATA[<p>Every content blocker has the same hole in it, and it isn’t technical. The
person who installs the blocker is the person who can remove it. Whatever
willpower put it there has to still be present, in full, at the exact moment it
is weakest. That is the one moment it never is.</p>

<p>So the useful question isn’t “how do we block this well.” iOS already blocks it
well — Screen Time’s content restrictions are built into the operating system and
have been for years. The useful question is: <strong>how does a decision you make today
survive contact with the person you’ll be at 2am on a Thursday?</strong></p>

<h2 id="move-the-decision-not-the-enforcement">Move the decision, not the enforcement</h2>

<p>The answer we landed on is that the passcode should never exist in your head.</p>

<p>When you set a device up, the extension generates a random Screen Time passcode.
Before it shows you anything at all, it sends that passcode to our server, which
encrypts it and files it under your account. Only then does a thirty-second
countdown begin, and the digits are played to you one keypad tap at a time,
mixed with decoy taps, while you follow along on the phone.</p>

<p>Thirty seconds later the restrictions are on, and the passcode exists in exactly
one place: encrypted, on a server, behind a clock.</p>

<p>You didn’t memorise it, because you were never shown it as a number. You can’t
look it up, because the decryption key isn’t in the extension — taking the
extension apart gets you nothing. And you can’t simply ask for it back, because
the only thing standing between you and it is the number of days you chose while
you still wanted the block to work.</p>

<h2 id="the-clock-starts-when-the-lock-does">The clock starts when the lock does</h2>

<p>One detail took longer to get right than the encryption did: when the countdown
starts.</p>

<p>The obvious implementation sets the deadline when setup begins. It’s also wrong.
Setup can be abandoned halfway — you get interrupted, you close the tab, Chrome
destroys the popup because it lost focus. Come back four days later and finish,
and a deadline set at the start has quietly eaten four days you spent completely
unlocked.</p>

<p>So the duration isn’t even asked for until the end. You confirm, and the unlock
time is written once, at that instant, and never rewritten. A device you set up
but never confirmed sits as <em>Pending</em> and can be finished next week with the full
term still ahead of it.</p>

<h2 id="extending-is-easy-on-purpose">Extending is easy on purpose</h2>

<p>You can always add time to a lock. You can never take it away.</p>

<p>That asymmetry is the whole product. Adding time is not a decision anyone regrets
at 2am — nobody’s worst moment involves an urge to be <em>more</em> restricted. Removing
time is the only thing a blocker has to defend against, and a lock you can
shorten is a lock that stops working precisely when it was supposed to start.</p>

<p>Once the days are up, the lock opens. Not before. That isn’t a limitation we
haven’t got around to fixing — it’s the feature, and everything else is
plumbing.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Every blocker fails the same way: the person who installed it is the person who can remove it. Here's the one design decision that changes that.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://adultxblocker.com/assets/og.png" /><media:content medium="image" url="https://adultxblocker.com/assets/og.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>