sheets.works
Ad blocker Play
Play Long Story Short

Do you use an ad blocker?

Probably. It's the first thing most people install after the browser. But your ad blocker can't tell what an ad is. Someone has to tell it, one ad at a time. For most of the world, that someone is a man in New Zealand.

sheets.works · October 2026 · 10 min read

Do you remember the web before it?

Pop-ups that opened more pop-ups. A banner with a monkey you were told to punch. A car advert playing at full volume while you hunted for the tab it was coming from. "Congratulations, you are our 1,000,000th visitor." Every page, every day.

Here is a news site the way it still looks without one. Your blocker lives where it always has, in the corner of the browser.

dailyeverything.example/news/who-is-blocking-your-ads
The Daily EverythingFree. Always.*
AD
Doctors hate this one weird trickClick now
AD
AROUND THE WEB
This $12 gadget is selling out everywhere
Local singles want to meet you
You won't believe what this house looks like inside
Wait! Don't go!

Congratulations, you are today's lucky visitor. Enter your email to claim your prize.

you@example.com
Claim my prize

That's the switch, top right of the window. Most people flipped it years ago and never looked back.

This is a demonstration. The ads in these windows are made up to show how an ad blocker works, and nothing on this page shows you a real ad or tracks you. The rules that remove them are real, copied from EasyList with the names, dates and reasons from its own history. We are not connected to EasyList, to any ad blocker or to any company named here; this page is about the people who keep the list going.

What it has been doing since

On 8 October we loaded 45 news sites from an ordinary connection in India, with no blocker on. The middle article made 650 requests before it was done, and 464 of them, 68%, went to ad companies and trackers. One New York Post article made 4,044 requests. 2,993 were ads and trackers, and the story weighed 30 MB. With a blocker on, the same story was 4 MB.

23 of the 44 articles never finished loading in 40 seconds with the ads on. Every one of them finished with the ads blocked, most in under three seconds.

How long have you had one?

25 million requests to ad companies and trackers that never left your device.

Our estimate: 464 ad and tracker requests on a typical article, 30 pages a day. You never saw one of them, which is the point.

About three people in ten online use a blocker, 1.8 billion by one survey. The five biggest are installed 145 million times in Chrome alone. And nearly all of them do the same thing in the same way, because they read the same list.

A short break from all those numbers. Our daily game gives you one true news story and asks you to cut it to five of its own words, with no ads anywhere near it. Play today's Long Story Short

Your ad blocker doesn't think. It reads a list. One line of text for each ad, and every line was typed by a person, usually because someone was trying to read a page and an ad got in the way. Almost every blocker in the world reads the same list.

The page you just scrolled through was cleaned up by that list, one line per ad, and the names on the cards are the people who typed those lines. Two more ads are waiting further down, next to the bits of the story they belong to. So who are they?

It started with one man in 2005

EasyList started in the spring of 2005. A man called Rick Petnel, rick752 online, was using the first popular ad blocker for Firefox, and its owner had more or less walked away from it. Rick wanted a list of rules that was, in his words, simple, effective and easy to understand and edit. So he wrote one.

EasyList home page by rick752, archived January 2008
Rick's page for EasyList, as the Internet Archive saw it on 2 January 2008: "Over 2.2 million steady EasyList subscribers worldwide and growing every month".

It worked. When the next version of that blocker, Adblock Plus, made big lists like his fast enough to run, EasyList became the list it recommended, and by January 2009 about four million people were using it without knowing his name.

Rick then sadly passed away in April 2009, and Ares2, then author of EasyList Germany, agreed to take over his position.EasyList's own history page

Volunteers have kept it going ever since, under names like Michael, Erunno, MonztA, Khrin and Famlam. Almost none of them use their real name. Most were never paid a penny.

dailyeverything.example/news/story
SPONSORED
Top 10 stars who aged badly. Number 7 will shock youcelebritygossipdaily.example

Ad 5 of 6.

Two people write most of it

We downloaded the list's whole history, all 296,990 changes from November 2009 to this week, and counted who made each one. The answer is mostly one person. Since 2016, Fanboy has made more than half of the changes that say what they do, in almost every year, and in 2021, 2022 and 2023 it was seven in ten. The only other person with a large share is Khrin, who joined in 2010.

Who wrote each year's changes

Share of described changes to EasyList and EasyPrivacy, 2010 to 2026

Fanboy 58%Khrin 15%Everyone else
Fanboy (Ryan Brown)KhrinEveryone else

Our count from the git history of github.com/easylist/easylist. Fanboy's five usernames and email addresses are matched to one person through the commits themselves. Changes marked only "Update", automated server updates and merges are left out, and the next section explains why. A change can be one rule or many, so this is a share of changes, not of hours worked.

Fanboy's real name is Ryan Brown. He lives in New Zealand. For about ten years he did this as a volunteer, in his own time, for nothing. In June 2019 the browser company Brave said it would start paying him.

Brave blog post, Supporting The Web Privacy Community, 13 June 2019
Brave's blog post of 13 June 2019, the one that named him.

Currently, much of this filter-list work is done by volunteers. Brave will be contracting with Ryan Brown (aka "FanBoy" of "Fanboy Adblock Lists") to support his work maintaining EasyList and EasyPrivacy. Ryan is currently the top committer to these lists, and has been maintaining them as a volunteer.Brave, "Supporting The Web Privacy Community", 13 June 2019

One day of the list

Friday 9 October 2026, New Zealand time: 178 changes in all

  1. KhrinAdded stockx.com
  2. Yuki2718Fixed a report from AdGuard's list
  3. Yuki2718Added apsenes.blogspot.com
  4. MonztAAdded filecrypt.cc
  5. FanboyAdded comed.com
  6. FanboyAdded peoplematters.in
  7. FanboyFixed a report from uBlock Origin's list
  8. FanboyAdded theinfatuation.com
  9. FanboyAdded telefericbarcelona.com
  10. StevoisiakAdded opensource.googleblog.com, social buttons
  11. Griffin AllenAdded kwsseuren.nl
  12. smed79Added gamersnexus.net
  13. StevoisiakAdded prezi.com, a terms-of-use banner
  14. FanboyAdded alexgettinglost.com
  15. FanboyAdded sojournswithsue.com
  16. StevoisiakAdded bbc.com, social buttons
  17. FanboyFixed a report on EasyList's own page
  18. FanboyFixed a report on EasyList's own page

+ 140 more changes that day labelled only "Update", each adding one or two junk ad addresses, spread across all 24 hours

From the list's git history. "Added" means rules for a site somebody reported; "Fixed" means a broken page or a missed ad from another list's tracker. Several of these came from outside contributors and were merged by the list's authors.

So here is where things stand. The list that most of the world's ad blockers run on is written mostly by one employee of one browser company, a company with an advertising business of its own, and that company publishes his work for everyone, its rivals included, for free.

Ryan cuts the web down one line at a time. We made a game about cutting things down: one true story a day, five words, about two minutes. Play today's Long Story Short

The list never sleeps

There is something else in the history, and it isn't a person typing. Since 2025 a change labelled only "Update" has landed roughly every ten minutes, at every hour of the day and night, Christmas Day included. In the twelve months to this week there were changes from Fanboy's account on all 366 days.

EasyList commit history on GitHub showing M: Update commits by ryanbr minutes apart
The list's history on GitHub on 12 October 2026. "M: Update", from Ryan's account, every few minutes.

Every hour looks the same

Changes from Fanboy's account by hour of the day, New Zealand time, last 12 months

midnight6amnoon6pm11pm

46,799 changes stamped with a New Zealand time zone, 11 Oct 2025 to 11 Oct 2026. Median gap between them: 9.8 minutes.

Each of those changes adds one or two web addresses to the list of ad servers. They look like this:

||tstncdlspmvbc.space^||wemgbfegt.com^||bphekomorrvvx.site^||myupbbotesmna.website^

These are throwaway addresses that scam and pop-up ad networks register by the thousand, use for a few days and abandon, so they can stay one step ahead of lists like this one. Nobody types at that speed through the night, and nobody is. The typing is done by a program Ryan wrote and put on GitHub in April 2025, called network-scanner, which opens a website in a hidden browser, clicks into the pop-up windows that follow, notes every address the chain reaches, checks that each one is real, and appends the new ones to the list as rules. The month it appeared, the "Update" changes went from 57 to 470, and by October 2025 they were running at 4,000 a month. Last November he published a second program that reads a list back and finds the addresses that have since died, and the list is cleaned almost as fast as it grows: of 61 addresses added in the first two weeks of January, only 10 were still in it by October. So the arms race runs all night, every night, behind every ad you never see, between one man's scanner and the networks it is chasing.

The network-scanner repository on GitHub
network-scanner on GitHub: 1,287 changes since April 2025, and the description that explains the night shift.
dailyeverything.example/video
AD
Sound on! You won't want to miss this

Ad 6 of 6.

Almost every ad blocker runs on it

The blocker you installed has its own name, its own logo, maybe its own company. Open its settings and you will almost certainly find EasyList switched on underneath. We checked the biggest ones in their own help pages and code.

EasyList is the primary list of ad-blocking filters that the majority of ad blockers use. If EasyList is disabled, AdBlock will not be able to block ads.AdBlock's own help centre

AdBlockEasyList on by default
Adblock PlusEasyList on by default
uBlock Origin and uBlock Origin LiteEasyList on by default
Brave's built-in blockerEasyList on by default
AdGuardMain list "originally based on EasyList"
GhosteryEasyList bundled in its engine

How many people installed them

Users shown on each extension's Chrome Web Store page, 11 October 2026

AdBlock
65m
Adblock Plus
40m
uBlock Origin Lite
21m
AdGuard
17m
Ghostery
2m
uBlock Origin
gone

Chrome Web Store pages read on 11 Oct 2026. These are installs, not people, and one person can have more than one. On Firefox, uBlock Origin alone has 11.5 million daily users. Brave and phone blockers are not counted here.

It keeps people safe

This isn't only about tidiness. In December 2022 the FBI put out a warning: criminals were buying search ads that looked exactly like real brands, so someone searching for their bank or a piece of software would click the top result and land on a copy that emptied their account or installed malware. The FBI's advice to the public included a line most people skipped: use an ad-blocking extension when you search.

FBI public service announcement, 21 December 2022, on brand impersonation in search ads
The FBI's warning of 21 December 2022.

That is the part of the work nobody sees. Every throwaway address added at three in the morning closes a door on a pop-up, a fake prize or a scam download, for everyone whose blocker has fetched the latest copy of the list.

One line of text

Go back to the banner at the top of the made-up page. The second line that fired on it was ##.leaderboard-ad. Two hash marks mean hide it. The rest is the label the website's own code gave the box. So the whole line says: on any site, anywhere, if a box is called leaderboard-ad, don't show it. Someone calling himself Fanboy typed that line on 17 May 2013, because a reader had spotted an ad on an IBTimes article about the Galaxy Note 2 and reported it. One reader, one line, and twelve years later it still hides that box on every site that uses the name.

That's the smaller of the two kinds of line. About 22,500 lines hide a box. About 54,000 name an address and tell your browser never to talk to it. Here is what those two kinds did to the page above, in order, in well under a second.

What happens in the first second

When a page opens, your browser reads its code first, and that code is a shopping list: the story, the pictures, and a line asking an advertising server to fill each ad box. The page above had four of those boxes. With a blocker on, every item on that list is dealt with before anything is drawn.

The request goes first. Before your browser sends anything anywhere, the blocker gets to look at the address, and it checks it against the lines that start with two bars. ||doubleclick.net^ means doubleclick.net and anything underneath it, and the little hat at the end means the name has to stop there, so ad.doubleclick.net is caught and doubleclick.network is not. If a line matches, the request is cancelled on your device. It never goes out. Nothing comes back, no cookie is set, and the auction that would have decided which ad you see never starts, because the script that runs the auction was the thing that never arrived.

Checking 54,000 lines for every request sounds slow. It isn't, because the blocker never reads the list top to bottom. It chops the address at the dots and slashes, looks the pieces up in a table, and compares only the handful of lines that share a piece. Brave's engine, which Ryan's scanner also uses, takes about four millionths of a second to clear an address that isn't on the list, and that is most of them.

The box goes second. The 22,500 hide lines are turned into one stylesheet, the same kind of file that sets a page's fonts and colours, and the blocker slips it into the page before the page is painted. The box labelled leaderboard-ad is told display: none, it takes up no room, and the story moves up into the gap. That's why on a real site you never see an ad flicker and vanish. It was never drawn. On this page we slow it right down so you can watch.

This is where the numbers at the top come from. On the middle article in our test, 464 of 650 requests went to ad companies and trackers. With the list on, those 464 never leave your device, and they were most of the download and most of the waiting. That is why the 23 articles that couldn't finish loading in 40 seconds finished in under three once the ads were gone.

The list can also say no to itself. 717 of its lines start with @@, which means let this one through. Each was typed after a line broke something: a login button hidden by mistake, a video player that wouldn't start. Acceptable Ads, further down, uses the same two characters in a separate list to let paid-for ads back in.

And it gets to you like this. On 12 October at 06:51 UTC, Ryan's scanner added one more throwaway address. At 06:52 the copy of EasyList that every blocker downloads was rebuilt, and its first lines name that change. The same lines tell blockers to come back every four days, and uBlock Origin checks for a stale list within two minutes of your browser starting. So an address a scam network registered on Monday is being refused on millions of devices by the weekend.

The first lines of the published EasyList file
The first lines of the file every blocker downloads, on 12 October 2026: the time it was rebuilt, "Expires: 4 days", and the change it was built from.

Ryan keeps the list short so your page can be. Our daily game does the same to the news: one true story, cut to five of its own words. Play today's Long Story Short

The list keeps growing

Rules in EasyList and its privacy twin EasyPrivacy, at the start of each year

EasyList: adsEasyPrivacy: trackers

Our count of rule lines in the list's git history, comments left out. The history before 2013 was imported in bulk, so we start in 2014.

Who gets paid

The list is free, published under open licences, and anyone can build on it. The products built on top of it make money in different ways.

You pay nothing for EasyList, and for most of its history that is also what the people writing it were paid. In 2019 one company started paying its main author.

Adblock Plus and AdBlock switch on a second list by default, called Acceptable Ads, which lets some less annoying ads through. Their company, eyeo, charges the biggest companies that join it. In 2015 the Financial Times reported a fee of about 30% of the extra ad revenue, and in 2017 the EFF wrote that Google, Amazon and Criteo were among those paying. Eyeo has never confirmed the amounts.

uBlock Origin went the other way. Its page says it is "Free. Open-source. For users by users. No donations sought", and then points its users somewhere else:

If you ever want to contribute something, think about the people working hard to maintain the filter lists you are using, which are available to use by all for free.uBlock Origin's page on GitHub

Chrome showed uBlock Origin the door

In 2024 and 2025 Google changed the rules for Chrome extensions, in a switch it calls Manifest V3, and the change hits the first step above. An extension can no longer be shown each request and say cancel. It has to hand Chrome a fixed set of rules in advance, at least 30,000 per extension are guaranteed, and Chrome does the checking itself, where the extension can't see. EasyList's address lines alone number about 54,000, and they change every ten minutes, so a list has to be cut down and compiled to fit, and anything that needs a decision at the moment of the request is off the table. The original uBlock Origin was built around exactly the step that was removed. When we checked its Chrome Web Store page on 11 October 2026, it was gone. A lighter version built for the new rules, uBlock Origin Lite, has 21 million users, and it still switches EasyList on by default.

Chrome Web Store page for uBlock Origin: This item is not available
uBlock Origin's address on the Chrome Web Store, 12 October 2026.

1,121 reports waiting

Anyone can report an ad the list missed or a website it broke, and people do, in public, on the list's GitHub page. On 11 October 2026 there were 1,121 reports open. Half had been waiting more than 600 days. The oldest had been waiting 1,494. Of the thousand newest, 353 had been closed, usually within a day or two.

EasyList GitHub issues: 1,126 open, 9,285 closed
The list's reports page on 12 October 2026: 1,126 open, a day after our count of 1,121, and 9,285 closed.

Plenty of fixes go into the list without anybody closing the report that asked for them, so an open report is not always an ignored one.

Our daily game

Long Story Short

Every day there is one true news story, and you cut its sentence down to five of its own words. It takes about two minutes, and there are no ads in it.

Play today's game

Who blocked this?

Most of EasyList is written one website at a time. Type a site you read and see how many lines people have written just for it.

Counts the rules in EasyList and EasyPrivacy that name the site, on 11 Oct 2026. General rules like ##.leaderboard-ad work on every site as well, so a site with no rules of its own still gets cleaned.

About 145 million ad blockers in one browser alone run on a list that one man started in 2005 and that two people, mostly one, keep writing every day. If you use one, you have been reading the web through their work for years. You just never saw it.

If you made it this far, you like reading things properly. Play today's Long Story Short

You've read this whole page with an ad blocker on. This is what it would have looked like without one.

Sources and method

  • EasyList git history, github.com/easylist/easylist, all 296,990 commits to 11 Oct 2026, counted by us. Each rule's origin was found by searching its file's history for the first version that contains it.
  • EasyList, "About" (easylist.to/pages/about.html), for the history from 2005 to 2011.
  • Brave, "Supporting The Web Privacy Community", 13 June 2019.
  • Ryan Brown's public tools: github.com/ryanbr/network-scanner (first commit 27 April 2025) and github.com/ryanbr/cleaner-adblock (9 November 2025). We matched the tool's appearance to the monthly count of "Update" changes; we did not ask him.
  • How blocking works: the published list at easylist.to/easylist/easylist.txt (version 202610120652, "Expires: 4 days", built from commit 78f34c97 of 06:51 UTC); uBlock Origin wiki, "Dashboard: Filter lists" (update sessions begin 105 seconds after the browser starts); Chrome developer documentation for declarativeNetRequest (30,000 guaranteed static rules per extension); Brave's adblock-rust timing as quoted in the network-scanner README. Line counts by kind are ours, from the list's files at commit 78f34c97: 47,368 ad-server addresses, 2,560 pop-up addresses, 1,863 third-party and 1,865 other block lines, 13,630 general and 8,921 site-specific hide lines, 717 exceptions.
  • Share of people using a blocker: GWI survey, Q2 2025, as reported by DataReportal (29.5% of internet users, about 1.77 billion people). The tally on this page is our own arithmetic from the 45-site measurement and an assumed 30 pages a day; it counts requests, not ads, and one visible ad can be dozens of requests.
  • Our own measurement of 45 sites, 8 October 2026, is in Every place an ad can find you.
  • FBI Internet Crime Complaint Center, public service announcement, 21 December 2022.
  • AdBlock and Adblock Plus help centres (default filter lists); uBlock Origin assets.json and uBlock Origin Lite rulesets.json; Brave adblock-resources list catalog; AdGuard knowledge base; Ghostery adblocker repository.
  • Chrome Web Store and Firefox Add-ons pages, read 11 Oct 2026.
  • Acceptable Ads fees: Financial Times (2015) and EFF (2017). Eyeo has not confirmed amounts.
  • Our counts and the script that made them: changes by person and year, where each rule on this page came from, count.py.
  • The ads on this page are made up. No real ads or trackers load here.