Every ad on the internet, replaced with fine art.
Artblock is a Chrome extension that detects advertisements, sponsored content, affiliate widgets, and promotional clutter on the pages you visit and swaps them for artwork from three public, open-access collections:
- 🏛 Art Institute of Chicago — paintings, Japanese woodblock prints, photography (Monet, Hokusai, O'Keeffe, and thousands more)
- 🏛 The Metropolitan Museum of Art — centuries of painting, sculpture, and design
- 🌌 NASA Image Library — nebulae, galaxies, Earthrise, the Pillars of Creation
- Detects Google Ads, DoubleClick, Amazon, Taboola/Outbrain, MGID, RevContent, sponsored content, affiliate widgets, newsletter/paywall prompts
- Categories: Impressionism, Japanese Woodblock, Renaissance, Photography, Modern/Contemporary, NASA Space, or Chaos Mode
- Never shows you the same image twice in a session
- Hover any replaced slot to see the title, artist, date, and source museum
- Per-tab toolbar badge counts how many ads have been replaced on the current page
(Coming soon on both.)
Chrome / Edge / Brave
- Clone this repo:
git clone https://github.com/vuciv/artblock.git - Open
chrome://extensions, enable Developer mode - Click Load unpacked, select the repo root
- Visit any ad-supported site — the replacements happen automatically
Firefox
- Clone the repo
- Run
./build.sh— producesartblock-firefox-v1.0.0.zip - Open
about:debugging#/runtime/this-firefox→ Load Temporary Add-on → select the zip (or the repo'smanifest.firefox.json)
./build.sh
Produces artblock-chrome-vX.Y.Z.zip and artblock-firefox-vX.Y.Z.zip, ready to upload to their respective stores. The Firefox build uses manifest.firefox.json, which adds browser_specific_settings.gecko.id (required by AMO) and an event-page background.scripts declaration for compatibility with Firefox 109+.
content/detector.jsscans the DOM for ad containers via curated CSS selectors and IAB ad-size heuristics, skipping nested matches so only the outermost ad slot is replaced.content/observer.jswatches for dynamically-injected ads viaMutationObserver.content/replacer.jsswaps each detected slot for an<img>sized to fit, with a hover tooltip showing the artwork metadata.background/service-worker.jsfetches art metadata from the three public APIs and caches it per aspect-ratio bucket inchrome.storage.local, so replacements are instant and never repeat within a session.
Artblock collects nothing. No analytics, no accounts, no telemetry, no browsing history. The only outbound requests it makes are to the three public museum/NASA APIs, and those requests carry nothing but a generic search term. See PRIVACY.md.
Artwork and imagery are sourced from the open-access programs of the Art Institute of Chicago, The Metropolitan Museum of Art, and NASA. All collection metadata and images remain the property of their respective institutions.