AI-Created Software

The following AI-generated aka vibe-coded software. The software is specific to my needs and my system and may not work for you or your system. Support is limited, but if you report a bug I'll certainly look into it. All code is provided in a zip file for you to review should you choose.

Reddit Domain Blocker

A Chrome extension that hides Reddit posts linking to domains you don’t want to see (e.g. dailybeast.com).

Install (unpacked, for personal use)

  1. Unzip this folder somewhere permanent (don’t delete it after installing — Chrome loads the extension from this folder).
  2. Open chrome://extensions in Chrome.
  3. Turn on Developer mode (top-right toggle).
  4. Click Load unpacked and select the reddit-domain-blocker folder.
  5. The extension icon will appear in your toolbar.

Upgrading from an earlier version: hit Reload on the extension card, then reload any Reddit tabs you already have open.
Chrome doesn’t inject an updated content script into pages that are already loaded.

Usage

Click the extension icon, type a domain (e.g. dailybeast.com), and press Enter. Posts linking there disappear from your feed, including as you scroll. Click the ✕ next to a domain to unblock it.

Block without typing. Right-click any link on Reddit and choose Block dailybeast.com — the menu names the domain under your cursor. The post disappears immediately.

Snooze for a day. The ☾ button next to a domain stops blocking it for 24 hours, then resumes on its own. Useful when a site you normally skip is covering something you’re following. Snoozed rows show how long is left; ⏻ resumes blocking immediately.

Pause everything. The Pause button in the popup header stops all blocking without touching your list. The toolbar badge reads off while it’s paused, so you can’t forget you left it that way.

Filter a long list. Once you’re blocking 20 or more domains, a filter box appears above the list.

What the toolbar badge means

Badge Meaning
A number How many posts are hidden on this page right now
Blank Nothing matched on this page
off Blocking is paused
! No posts could be found on a feed page — see below

The ! badge is a canary. It means the extension looked at a feed, waited for it to render, and couldn’t find a single post card. That almost always means Reddit changed its page structure and the detection logic needs updating. Without it, a broken extension looks exactly like a quiet day on your feed.

Settings page

Right-click the extension icon and choose Options, or use Import list… in the popup. It holds:

  • When a post matches — collapse each blocked post to a one-line Hidden: dailybeast.com · show row (the default), or hide it completely with no trace. Collapsing gives you an escape hatch when a domain catches something you wanted to read.
  • Add several at once — paste a batch of domains, one per line or separated by commas. Full URLs are fine; they get trimmed down to the domain.
  • Export and Import — see below.

Backing up your list

Export — click Export list in the popup. Chrome saves a file named reddit-domain-blocker-settings-YYYY-MM-DD-HHMMSS.json to your downloads folder, using your local clock — for example reddit-domain-blocker-settings-2026-09-06-145837.json. The timestamp means repeated exports on the same day sit side by side instead of Chrome appending (1), (2) to them.

Import — click Import list… in the popup. That opens the settings page in a new tab, where you can drop the file onto the page or pick it with Choose file. Before loading it, choose what should happen:

  • Add to my list (default) — merges the file into what you already block. Domains you already have are left alone, and your preferences aren’t touched.
  • Replace my list — throws away your current domains and preferences, and uses only what’s in the file.

Either way you get a count of what was added, skipped as a duplicate, or rejected as not a valid domain. Open Reddit tabs update immediately — no reload needed.

Import lives on the settings page rather than in the popup because Chrome closes the popup the moment the file-picker dialog takes focus, which would silently discard your choice.

File format

Entries are normalised on import, so https://www.Example.com/story and example.com both become example.com. A plain JSON array of domains works too, which makes it easy to hand-write a starter list. Files from version 1.1 still import fine.

{
  "format": "reddit-domain-blocker/settings",
  "version": 2,
  "exportedAt": "2026-09-06T12:00:00.000Z",
  "blockedDomains": ["dailybeast.com", "example.org"],
  "prefs": { "paused": false, "hideMode": "collapse" }
}

Snoozes aren’t exported — they expire within a day, so restoring one on another machine a week later would be meaningless.

Notes

  • Subdomains are covered automatically — blocking dailybeast.com also hides links to amp.dailybeast.com.
  • Your list, preferences, and snoozes sync via chrome.storage.sync, so they follow you across Chrome installs signed into the same Google account. Chrome caps each of those at 8 KB (roughly 400 domains for the list); past that, saving fails and the extension tells you so.
  • Works on both old.reddit.com and the new www.reddit.com layout.
  • Permissions: storage for your list, contextMenus for the right-click action, alarms to wake snoozed domains back up, and access to reddit.com pages. Nothing is sent anywhere — there is no network code in this extension.

Files

File Purpose
manifest.json Extension manifest (MV3)
content.js Runs on Reddit pages: hides or collapses matching posts
background.js Service worker: badge, right-click menu, snooze expiry
popup.html / popup.js Toolbar popup: add, remove, snooze, pause, filter, export
options.html / options.js Settings page: display mode, bulk add, export and import
shared.js Domain rules, storage, and parsing shared by all of the above
icons/ Toolbar and store icons, plus icon.svg source
(1 votes, average: 5.00 out of 5)

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail.