Blocks trackers, ads & web fonts before they load.
Network-layer blocking via Chrome's declarative rules — no per-request CPU cost. Around 250 rules cover the usual analytics, ad networks, and font CDNs.
Chromium MV3 extension · v1.1.4
Potatofy strips out the heavy parts of the modern web so a Raspberry Pi (or any low-spec box) can still browse without melting. 16 features, 13 on by default, nothing phoning home.
Peak memory reclaimed
-784MB
Measured on a Raspberry Pi 5 with 8 GB RAM, Chromium 148, identical browsing session. Roughly 17% of total peak memory, freed without changing how the web looks to you.
Eight standard features and five aggressive maximum-savings features — four on by default (low-quality images is opt-in). Flip any off, or whitelist a site with one click.
Standard — safe defaults
Network-layer blocking via Chrome's declarative rules — no per-request CPU cost. Around 250 rules cover the usual analytics, ad networks, and font CDNs.
If you haven't touched a tab in a configurable interval (default 5 min), it goes to sleep. The tab stays in your strip; the memory does not.
When a tab is hidden, one-shot setTimeout calls and requestAnimationFrame callbacks stop running. Repeating intervals are left alone so background polling loops keep working. Switch back and suppressed timers catch up.
The moment a tab loses focus, any playing video is paused and its preload is set to none. The decoder returns memory immediately. On a visible tab, videos also load on-demand rather than pre-buffering.
Reduces all animation durations to near-zero and strips preload, prefetch, preconnect, and modulepreload link tags — the ones that load 40 things before you've read the first sentence.
Adds loading=lazy, decoding=async, and fetchpriority=low to images and iframes that don't already have them — stopping the browser from fetching off-screen assets the moment the page loads.
Strips the autoplay attribute and forces preload=none on audio elements, so media only starts loading when you decide to play it.
Banking, video calls, sites that genuinely need full access. Open the popup, hit Whitelist This Site, done. All features are disabled for that host, instantly.
High-impact — can break sites, whitelist to restore
Every script not served from the page's own domain is dropped at the network layer. This eliminates most trackers, chat widgets, A/B testing frameworks, and social embeds. It will break some sites — that's what the whitelist is for.
Foreground potato mode extends image blocking to all tabs, not just the current one. This stops ad networks from burning bandwidth on images you never asked for.
Site-specific CSS rules target and hide the heaviest non-content elements per domain: YouTube comments and recommended sidebar, Reddit trending feeds, Twitter's trending column, Facebook's right rail, Amazon sponsored rows, LinkedIn ads, and GitHub promoted content. The page still loads fully — you just don't see the noise.
Monitors free system RAM every 30 seconds. If available memory drops below a configurable threshold (default 500 MB free), idle tabs are discarded automatically — before Chrome starts doing it for you in a less orderly way.
The popup's Kill JS here and Kill images here buttons block all scripts or images on the current domain permanently. Boost this tab applies a temporary aggressive block on the current tab — useful for sites that are slow right now.
Peak memory across the three biggest Chromium processes on a Raspberry Pi 5, same browsing session, same tabs.
Two ways to get Potatofy — pick the one that suits you.
Note: the Web Store version may be behind the unpacked version for new features and bug fixes, due to review delays.
Runs directly from the repo — gets fixes the moment they land.
git clone https://github.com/Funnykid7/Potatofy-extension.git
chrome://extensions and turn on Developer mode.The toggle is in the top-right corner. Same flow works on Chromium, Brave, Edge, and Arc.
You should see a small potato icon land in your toolbar. Click it to configure features, whitelist sites, or check your savings stats.
The Standard features (tab suspension, JS freeze, lazy images, animation kill, etc.) are conservative — they affect background behaviour and loading hints, not how content renders. The Maximum Savings features are more aggressive. Blocking 3rd-party scripts by default will break some sites — anything that relies on a CDN-hosted script for core functionality (certain payment flows, site-hosted Google Fonts, some login buttons). The fix is one click: open the popup and hit Whitelist This Site. The whitelist is per-domain and permanent until you remove it.
These are features that deliver the biggest gains but can cause breakage on some sites. Four of five are on by default: block 3rd-party scripts, block 3rd-party images in the foreground (Foreground Potato Mode), site-specific element killers, and defer video loading. The fifth — low-quality images — is off by default and opt-in. If a site stops working, open the popup, hit Whitelist This Site, and all features are suspended for that domain instantly. You can also toggle individual features off globally from the popup.
Because the Pi is the loudest example of "modern hardware that should be enough but isn't, because the web is heavier than it should be." Potatofy works on any low-spec machine: old laptops, Chromebooks, mini PCs. The Pi is just where the difference is most dramatic.
Boost installs a temporary, tab-scoped block on all 3rd-party scripts, images, and media for the current tab only, then reloads it. It is a one-tab version of the global 3rd-party block — useful for a site that is loading slowly right now without touching your global settings. The boost clears automatically when you navigate away from the domain or close the tab.
No. There is no analytics, no telemetry, no remote rule fetch. The whole rule list ships in the repo. Your settings can optionally sync to your Chrome profile via Chrome's own chrome.storage.sync (which routes through Google's servers). That is opt-in and off by default. We do not run any server.
Yes, opt-in. Open the popup, go to the Per-site & storage section, and toggle Sync settings to Google. Feature toggles sync immediately. Site lists (whitelist + per-site kill settings) only sync if you also toggle Also sync site lists — those describe your browsing habits so they default to local-only. Turning cloud sync off purges the remote copy.
Yes, and the source is GPLv3. Read it, change it, fork it.
The before/after bar chart comes from a real Pi 5 with Chromium's built-in memory tracing, comparing the same set of tabs with and without the extension. The popup's own savings counter is an estimate based on per-event weights (e.g. 60 MB per tab discarded, 80 KB per blocked request) — not a kernel-level measurement. It is meant to show direction and relative impact, not lab precision.