Resist

Core idea: Publishing a nutritional label for digital content, similar to the one on food packages, will help us take back control of our most scare resource: our attention.
Summary: I built Resist, a fully open-source Chrome extension, that analyzes your Twitter/X feed, adds 'nutrition labels' to tweets, and use that to give you control over what tweets you see. In this essay I go over the motivation behind it, and how it works. If you'd prefer, you can also simply try it here, or watch a video demo here.
The other afternoon, as I shopped for groceries under the blinding fluorescent lights in the Safeway on El Camino, I watched an eight-year-old pause by the candy aisle. He snatched a Feastables bar, MrBeast's name gleaming across the front, and turned it around like it might hold the next viral challenge. And then announced, half scandalized, half horrified, “Mom, this has thirty grams of sugar!”
His mother blinked. I did too. We grew up expecting puzzles and cartoons on the back of cereal boxes and candy bars; the surprise he cared about was glucose.
Typography that saved lives
Thirty years ago, a small group of food scientists introduced a simple black-and-white rectangle listing calories, fats, sugars, and proteins — the now-familiar Nutrition Label stamped on every package in the grocery aisle. That small design quietly rewired how we eat: what we choose, and how much of it we consume. The effects have been remarkable. Studies show that when labels are present, calorie intake drops by 6.6% and fat consumption by more than 10%. Chile pushed the concept further in 2016 with bold black octagons warning against foods high in sugar, salt, saturated fat, and calories. Within two years, hundreds of products were reformulated, and made healthier to dodge the dreaded warning glyph.
More importantly, these modest interventions reshaped public health itself: lowering obesity rates, strengthening cardiovascular outcomes, reducing mortality and healthcare costs, and shaping dietary literacy across generations.
Typography, quite literally, saved lives.
The infinite vending machine
Silicon Valley has also perfected the art of making people look at rectangles. Despite wellness sermons and screen-time pop-ups, the typical internet user now spends roughly two-and-a-half hours every day inside social feeds. To put that in perspective, that's more time than is spent eating, reading, or exercising in many households. Most of those hours flow across “infinite” interfaces whose very shape removes natural stopping cues. As time inflates, the feed expands to fill it.
Jonathan Haidt, in his book Anxious Generation, links this appetite to rising adolescent anxiety and depression. The story for adults isn't much better: longer sessions equate to higher distress. We know the harm, yet most of us keep chewing. We have an infinite vending machine. And no ingredient list.
Programming
But the real costs are even more pernicious. Social media is changing the way we perceive reality. The truth is that we are no longer program the timeline; the timeline programs us. Not consciously, not maliciously, but algorithmically and at scale. Content that polarizes, provokes, or enrages gets promoted because it performs. The system learns this, and feeds it back to us with increasing precision. Over time, what was once marginal becomes mainstream: extreme takes, tribal discourse, and binary framing. Could this be one of the reasons we're seeing an increase in societal polarization? Some measures seem to suggest so.
While awareness of this problem is growing, most efforts to curb social media use still resort to a blunt-force philosophy. Block the app. Delete your account. Go cold turkey for a “digital detox.” It's the attention equivalent of swearing off sugar entirely: a misguided diet built on deprivation, abstinence, and New Year's resolutions. And like most deprivation diets, the relapse rate is high. Total elimination cuts you off from too much, so the bans crumble, the apps return, and the cycle resets.
In short: you can't quit Sugar; you can't quit Twitter.
A nutrition label for digital content
Back at the grocery store, just as I was recovering from the surprise of a 8 year old reading the sugar content of a chocolate bar, a bigger shock awaited me: he returned the bar to the shelf. No drama, no negotiation. Just quiet rejection. MrBeast's own branding, defeated by a black-and-white label.
He resisted.
And that's when it hit me: what if we had an analogous label when facing digital sugar? Would we be able to resist the digital junk foisted upon us by MrBeast?
Over the last couple of months, I've been writing that missing label for myself. What started off a quick and dirty Javascript bookmarklet turned into a full fledged Google Chrome Extension. I call it Resist, an extension that quietly observes and annotates my social media feed (just Twitter, for now). From the moment it's installed, Resist beings to work in the background, scanning your feed as you browse it, quietly analyzing posts, and tagging each with a new kind of interface: a "digital nutritional label". If you're curious, you can hover your mouse over the Resist icon inserted on each post to reveal its label. Just as food labels give insight into calories, sugar, or fat, these labels summarize the cognitive content of what you're looking at. The label displays whether the post is Educational, Entertaining, or Emotionally charged, offering a quick, data-backed glimpse into the type of attention it's trying to capture.
Alongside classification, Resist measures dwell time on each post, ensuring that only time spent actively viewing or engaging with visible content is counted. This timing data, when combined with category assignments, builds a fine-grained picture of attention budgets across domains.
A new digital nutritional label

Passive, Personal, and Performant
The extension is designed to require no action from the user. Detection, analysis, and classification occur automatically in the background, with no tagging, correction, or confirmation required. When a post enters the viewport, Resist captures its content (text, images, and video) directly from the DOM. These are passed into multiple, local LLMs for image captioning, and (zero-shot) text classification, to assign scores to the three categories. In parallel, a request may also be sent to a remote model (currently Grok) for higher accuracy classification. Privacy-conscious users may use their own servers, or even disable this remote call, relying entirely on on-device processing at the cost of some precision.
Although passive by default, the system is also personalizable. Users can set daily budgets for each category (like a "diet" for your attention). As you browse, Resist tallies the total attention consumed throughout the day, and summarizes it for you. You also gain an understanding of how much of your attention budget is being spent on each category, and when you're approaching or exceeding your budget.
Your daily attention consumption

Resist gives you access to a personal dashboard that visualizes your attention distribution across categories. Users can see real-time consumption, track weekly trends, and monitor both approaching and exceeded budgets.
Personalized dashboard of your consumption

Once a budget is reached, Resist intervenes quietly by occluding further posts from the overdrawn category. This design shifts the burden away from moment-to-moment willpower, turning limits into a form of precommitment: the choice is made once, and the system enforces it thereafter.
Hiding posts from the overdrawn category

Compare this to the original food labels: to benefit from them, you have to remember what you ate, total the macros in your head (or in an app), and decide in the moment whether the brownie in your hand is “worth it.” Resist collapses that entire process. It watches, tracks, and tallies automatically. The label appears without asking, the totals update without effort, and the hiding happens before temptation sets in. It's calorie counting without the counting, a frictionless audit of your attention budget.
You don't need to summon the willpower to put the chocolate bar back. Resist can simply stave off the temptation in the first place.
Unregretted user-minutes
That is the long bet for Resist: dull the click-through metrics that fund outrage and clickbait. As more users adopt Resist, timelines will begin to shift, not by protest, but through the silent economics of disengagement. The message will be clear: show healthier content, or watch impressions evaporate. This is how we get to Elon's stated goal for Twitter: “maximizing unregretted user-minutes.” Perhaps in a few years, we'll expect every social app to come with a built-in “content nutrition” panel by default, required by law or by user demand.
I know that this probably sounds like wishful thinking, and the skepticism is warranted. But we've seen at least one instance of it working before. When nutrition labels became prevalent, they didn't just inform shoppers, they rewired incentives upstream. Manufacturers reformulated cereals, snacks, and beverages to reduce added sugars and saturated fats, not out of altruism but to stay on the shelf. A quiet feedback loop reshaped what millions ate.
The same loop, applied to attention, might reshape what we scroll.
Shortcomings and a call to action
Resist isn't perfect, and it's important to acknowledge its limitations. The biggest one is that it only runs in the browser, but most social media is consumed on phones. That means the very place where attention is most vulnerable — the pocket — is left unguarded.
Then there's the taxonomy itself. Our chosen categories of Education, Entertainment, and Emotion have no scientific basis. Food labels rest on decades of nutritional research; our categories are a first draft.
Then, there's the accuracy of the classification models. Sarcasm, memes, cultural nuance often escape the grasp of even the best models. This is especially true of the smaller, local classification that tradeoff accuracy for privacy, leading to some obviously poor results.
Finally, Resist is currently only supported on Twitter/X. It's not difficult to support other platforms. Resist is designed to be platform agnostic, but it's important to note that it doesn't do it yet.
These are the gaps. They're also the invitation. Resist is open by design, a sketch of what could be. The code is fully open-sourced here: github.com/bipsandbytes/resist, and if you'd like to contribute, either research or code, please reach out!
Resistance
There's another meaning to the word “resist” that resonates here: to refuse to bend in the face of an overwhelming force. Our attention today is under siege. Not by accident, but by design. And that's what makes reclaiming attention by pushing back against an entire economic infrastructure built to strip it away a form of resistance.
Author and artist Jenny Odell, in her book "How to Do Nothing", argues that attention is not merely a resource to conserve but a site of political refusal, a means of choosing the world one wants to live in. Odell suggests that when you refuse to give your attention to the engineered spectacles and outrage cycles, you're making a statement: that you value your time and mental space, and you won't let them be exploited on someone else's terms. In her words, attention can be an almost sacred form of agency, “the basis of a disciplined collective refusal”. Every person who opts out, even partially, from the attention economy's hamster wheel is, in a small way, subverting the system that wants to atomize us into little consumption machines.
Resist operationalizes that refusal. It returns control and agency to us. What began as a browser extension could become a standard: an interface element as unremarkable, and as indispensable, as the small rectangle that already sits on every candy bar.
