From 0dc753fb8204c93bea46b988e483ad8909ddf0ac Mon Sep 17 00:00:00 2001 From: rzen Date: Fri, 3 Jul 2026 15:35:04 -0400 Subject: [PATCH] =?UTF-8?q?sources:=20feed-first=20catalog=20=E2=80=94=203?= =?UTF-8?q?9=20sources=20on=20RSS/Atom,=207=20rescued=20from=20skip,=20Red?= =?UTF-8?q?dit=20back=20via=20.rss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Probed all 59 sources for feeds. Highlights: Atlas Obscura, This Is Why I'm Broke, A Continuous Lean, Gear Patrol, The Awesomer, Permanent Style, and The Browser all rescued from blocked/skip status by working feeds; all four Reddit subs work again via the anonymous .rss endpoint (top/.json remains dead); MoMA Design Store + Kikkerland switched to Shopify products.json endpoints. Newly skipped (confirmed dead/dormant): Tools and Toys, One Thing Well, Cool Material, Werd.com, Unusual Hotels of the World. --- sources.json | 213 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 138 insertions(+), 75 deletions(-) diff --git a/sources.json b/sources.json index e82636a..c34f70f 100644 --- a/sources.json +++ b/sources.json @@ -1,5 +1,5 @@ { - "updated": "2026-05-03", + "updated": "2026-07-03", "topics": [ "macos-apps", "apple-tips", @@ -18,7 +18,9 @@ "type": "blog", "topics": ["macos-apps"], "cadence": "daily", - "notes": "Federico Viticci's site. Long-form, considered reviews of Apple-platform apps. Pair with their Club MacStories newsletter." + "fetch": "feed", + "feedUrl": "https://www.macstories.net/feed/", + "notes": "Federico Viticci's site. Long-form, considered reviews of Apple-platform apps. Pair with their Club MacStories newsletter. Feed validated 2026-07-03 (macstories.net/feed/)." }, { "name": "The Sweet Setup", @@ -36,7 +38,9 @@ "type": "blog", "topics": ["macos-apps", "tools", "gifts"], "cadence": "weekly", - "notes": "Shawn Blanc's curated picks across software and physical objects. Strong taste, light volume." + "fetch": "skip", + "skipReason": "No 2026 content — the feed (toolsandtoys.net/feed/) confirms the newest entry is Sep 2024; site appears to be on indefinite hiatus.", + "notes": "Shawn Blanc's curated picks across software and physical objects. Strong taste, light volume. Confirmed defunct 2026-07-03 via feed (newest entry Sep 2024, feed itself is live but stale)." }, { "name": "One Thing Well", @@ -44,7 +48,9 @@ "type": "blog", "topics": ["macos-apps", "tools"], "cadence": "weekly", - "notes": "Tiny posts about software that does one thing well — heavy on indie utilities." + "fetch": "skip", + "skipReason": "Feed (onethingwell.org/rss) confirms the newest post is Jan 2023 — site is defunct.", + "notes": "Tiny posts about software that does one thing well — heavy on indie utilities. Confirmed defunct 2026-07-03 via feed (newest entry Jan 2023, feed itself is live but stale)." }, { "name": "Six Colors", @@ -52,7 +58,9 @@ "type": "blog", "topics": ["macos-apps"], "cadence": "daily", - "notes": "Jason Snell + Dan Moren on Apple. Reviews mixed with industry coverage; scan for app posts." + "fetch": "feed", + "feedUrl": "http://feedpress.me/sixcolors", + "notes": "Jason Snell + Dan Moren on Apple. Reviews mixed with industry coverage; scan for app posts. Feed validated 2026-07-03 (feedpress.me/sixcolors)." }, { "name": "Daring Fireball — Linked List", @@ -60,7 +68,9 @@ "type": "blog", "topics": ["macos-apps", "general-delight"], "cadence": "daily", - "notes": "Gruber's link blog often surfaces small Mac utilities and design-y oddities." + "fetch": "feed", + "feedUrl": "https://daringfireball.net/feeds/main", + "notes": "Gruber's link blog often surfaces small Mac utilities and design-y oddities. Feed validated 2026-07-03 (daringfireball.net/feeds/main)." }, { "name": "r/macapps", @@ -68,9 +78,9 @@ "type": "subreddit", "topics": ["macos-apps"], "cadence": "daily", - "fetch": "curl", - "fetchUrl": "https://www.reddit.com/r/macapps/top/.json?t=week&limit=25", - "notes": "Noisy but high-recall — sort by Top of the week to filter for signal. Reddit blocks WebFetch; the skill scans the JSON endpoint via curl with a User-Agent header." + "fetch": "feed", + "feedUrl": "https://www.reddit.com/r/macapps/.rss", + "notes": "Noisy but high-recall — sort by Top of the week to filter for signal. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too, but the unauthenticated default .rss endpoint still works — validated 2026-07-03 (reddit.com/r/macapps/.rss, 'new'-sorted); switched to fetch:feed, no OAuth needed." }, { "name": "Indie App Sunday", @@ -88,7 +98,9 @@ "type": "blog", "topics": ["tools", "gifts"], "cadence": "daily", - "notes": "Kevin Kelly's long-running catalog of physical and digital tools. The original source for this kind of taste." + "fetch": "feed", + "feedUrl": "https://kk.org/cooltools/feed", + "notes": "Kevin Kelly's long-running catalog of physical and digital tools. The original source for this kind of taste. Feed validated 2026-07-03 (kk.org/cooltools/feed)." }, { "name": "Recomendo", @@ -96,9 +108,9 @@ "type": "newsletter", "topics": ["tools", "gifts", "travel", "general-delight"], "cadence": "weekly", - "fetch": "curl", - "fetchUrl": "https://recomendo.substack.com/feed", - "notes": "Six recommendations a week from Kevin Kelly, Mark Frauenfelder, Claudia Dawson. Almost always includes one delightful object or app. Use the Substack RSS feed — full issue content is in the feed, the public site is locked down." + "fetch": "feed", + "feedUrl": "https://recomendo.substack.com/feed", + "notes": "Six recommendations a week from Kevin Kelly, Mark Frauenfelder, Claudia Dawson. Almost always includes one delightful object or app. Use the Substack RSS feed — full issue content is in the feed, the public site is locked down. Re-validated 2026-07-03; migrated from fetch:curl to fetch:feed (same URL)." }, { "name": "Uses This", @@ -106,7 +118,9 @@ "type": "interviews", "topics": ["tools", "macos-apps"], "cadence": "weekly", - "notes": "Interviews about the hardware and software people use. Good for triangulating what genuinely useful people pick." + "fetch": "feed", + "feedUrl": "https://usesthis.com/feed.atom", + "notes": "Interviews about the hardware and software people use. Good for triangulating what genuinely useful people pick. Feed validated 2026-07-03 (usesthis.com/feed.atom)." }, { "name": "r/BuyItForLife", @@ -114,9 +128,9 @@ "type": "subreddit", "topics": ["tools", "clothing", "gifts"], "cadence": "daily", - "fetch": "curl", - "fetchUrl": "https://www.reddit.com/r/BuyItForLife/top/.json?t=week&limit=25", - "notes": "Durable goods recommendations. Filter for posts with provenance and long-term reports. Reddit blocks WebFetch; the skill scans the JSON endpoint via curl with a User-Agent header." + "fetch": "feed", + "feedUrl": "https://www.reddit.com/r/BuyItForLife/.rss", + "notes": "Durable goods recommendations. Filter for posts with provenance and long-term reports. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too, but the unauthenticated default .rss endpoint still works — validated 2026-07-03 (reddit.com/r/BuyItForLife/.rss, 'new'-sorted); switched to fetch:feed, no OAuth needed." }, { "name": "Hacker News — Show HN", @@ -124,7 +138,9 @@ "type": "aggregator", "topics": ["macos-apps", "tools"], "cadence": "daily", - "notes": "Devs surfacing what they built. High volume — scan top of week." + "fetch": "feed", + "feedUrl": "https://news.ycombinator.com/showrss", + "notes": "Devs surfacing what they built. High volume — scan top of week. Feed validated 2026-07-03 (news.ycombinator.com/showrss) — official Show HN RSS, replaces homepage scraping." }, { "name": "Product Hunt", @@ -132,7 +148,9 @@ "type": "aggregator", "topics": ["macos-apps", "tools"], "cadence": "daily", - "notes": "Marketing-heavy, but the daily top-5 often includes a Mac app or utility worth a closer look." + "fetch": "feed", + "feedUrl": "https://www.producthunt.com/feed", + "notes": "Marketing-heavy, but the daily top-5 often includes a Mac app or utility worth a closer look. Feed validated 2026-07-03 (producthunt.com/feed)." }, { "name": "Carryology", @@ -140,7 +158,9 @@ "type": "blog", "topics": ["tools", "clothing", "gifts"], "cadence": "weekly", - "notes": "Bags, EDC, and well-made carry gear — overlaps clothing and tools." + "fetch": "feed", + "feedUrl": "https://www.carryology.com/feed/", + "notes": "Bags, EDC, and well-made carry gear — overlaps clothing and tools. Feed validated 2026-07-03 (carryology.com/feed/)." }, { "name": "This Is Why I'm Broke", @@ -148,8 +168,9 @@ "type": "aggregator", "topics": ["gifts"], "cadence": "daily", - "fetch": "curl", - "notes": "Internet-flotsam product aggregator. Quality varies wildly but the genuinely-novel finds are hard to get elsewhere. WebFetch hits 404; curl with Safari UA returns the homepage." + "fetch": "feed", + "feedUrl": "https://www.thisiswhyimbroke.com/feed", + "notes": "Internet-flotsam product aggregator. Quality varies wildly but the genuinely-novel finds are hard to get elsewhere. WebFetch and curl both hit an empty Angular SPA shell as of 2026-06-21, but /feed returns a full, fresh RSS feed — validated 2026-07-03; switched to fetch:feed." }, { "name": "Cool Material", @@ -157,8 +178,9 @@ "type": "blog", "topics": ["gifts", "clothing", "tools"], "cadence": "daily", - "fetch": "curl", - "notes": "Men's-leaning lifestyle finds: gear, gifts, apparel. WebFetch hits a 500 — curl with Safari UA returns the homepage cleanly." + "fetch": "skip", + "skipReason": "Full Cloudflare JS challenge on all URLs (homepage, /feed, /rss) — regressed from previously curl-friendly; no bypass found as of 2026-07-03.", + "notes": "Men's-leaning lifestyle finds: gear, gifts, apparel. Previously curl-friendly; now a full Cloudflare JS challenge on all URLs including /feed and /rss (403) — no working bypass found as of 2026-07-03." }, { "name": "Werd.com", @@ -166,7 +188,9 @@ "type": "blog", "topics": ["gifts", "clothing", "tools"], "cadence": "daily", - "notes": "Compact daily roundup of gear and gifts in a Tools-and-Toys vein." + "fetch": "skip", + "skipReason": "HTTP 403 to curl and WebFetch on homepage and all guessed feed paths (/feed, /rss) — no working bypass found as of 2026-07-03.", + "notes": "Compact daily roundup of gear and gifts in a Tools-and-Toys vein. Blocked as of 2026-06-21 and reconfirmed 2026-07-03 (403 on homepage, /feed, /rss)." }, { "name": "Gear Patrol", @@ -174,9 +198,9 @@ "type": "magazine", "topics": ["gifts", "clothing", "tools"], "cadence": "daily", - "fetch": "skip", - "skipReason": "Cloudflare JS challenge — neither WebFetch nor curl with Safari UA gets past it.", - "notes": "Editorial gift guides and product features. Skim seasonal guides for gift candidates." + "fetch": "feed", + "feedUrl": "https://www.gearpatrol.com/feed/", + "notes": "Editorial gift guides and product features. Skim seasonal guides for gift candidates. Feed bypasses the Cloudflare challenge entirely — validated 2026-07-03 (gearpatrol.com/feed/); switched from fetch:skip to fetch:feed." }, { "name": "The Awesomer", @@ -184,9 +208,9 @@ "type": "aggregator", "topics": ["gifts", "general-delight"], "cadence": "daily", - "fetch": "skip", - "skipReason": "Cloudflare JS challenge — both WebFetch and curl with Safari UA are blocked.", - "notes": "Quirky finds across products, art, and video — hits the 'delight' brief directly." + "fetch": "feed", + "feedUrl": "https://theawesomer.com/feed/", + "notes": "Quirky finds across products, art, and video — hits the 'delight' brief directly. Feed bypasses the Cloudflare challenge — validated 2026-07-03 (theawesomer.com/feed/, trailing slash required); switched from fetch:skip to fetch:feed." }, { "name": "MoMA Design Store", @@ -195,8 +219,8 @@ "topics": ["gifts"], "cadence": "ongoing", "fetch": "curl", - "fetchUrl": "https://store.moma.org/collections/new", - "notes": "Museum-curated objects. New Arrivals reliably includes one beautifully-designed daily-use thing. WebFetch returns nav-only — curl with Safari UA returns the full product grid." + "fetchUrl": "https://store.moma.org/collections/new/products.json", + "notes": "Museum-curated objects. New Arrivals reliably includes one beautifully-designed daily-use thing. WebFetch and the plain collection URL both return nav-only Shopify SPA shells — /collections/new/products.json returns the full product grid instead; fetchUrl updated 2026-07-03 (still 30 products, re-validated)." }, { "name": "Kikkerland", @@ -204,7 +228,9 @@ "type": "shop", "topics": ["gifts"], "cadence": "ongoing", - "notes": "Affordable design gifts; small clever objects." + "fetch": "curl", + "fetchUrl": "https://www.kikkerland.com/collections/new/products.json", + "notes": "Affordable design gifts; small clever objects. HTML collection pages are a Shopify SPA (nav-only) — /collections/new/products.json returns the full grid instead; fetch:curl + fetchUrl added 2026-07-03 (30 products validated)." }, { "name": "A Continuous Lean", @@ -212,7 +238,9 @@ "type": "blog", "topics": ["clothing"], "cadence": "weekly", - "notes": "Michael Williams on Americana, heritage menswear, and the makers behind it." + "fetch": "feed", + "feedUrl": "https://www.acontinuouslean.com/feed/", + "notes": "Michael Williams on Americana, heritage menswear, and the makers behind it. Cadence is quarterly/seasonal rather than dead — the feed shows a Jun 9 2026 'Father's Day Gift Guide' post after a Dec 2025 gap; the earlier 'dormant since Dec 2025' assessment was a stale snapshot, not a dead site. Feed validated 2026-07-03 (acontinuouslean.com/feed/); switched to fetch:feed." }, { "name": "Put This On", @@ -220,7 +248,9 @@ "type": "blog", "topics": ["clothing"], "cadence": "weekly", - "notes": "Long-running menswear blog. Strong on classic tailoring + rotating sale roundups." + "fetch": "feed", + "feedUrl": "https://putthison.com/feed/", + "notes": "Long-running menswear blog. Strong on classic tailoring + rotating sale roundups. Feed validated 2026-07-03 (putthison.com/feed/)." }, { "name": "Permanent Style", @@ -228,9 +258,9 @@ "type": "blog", "topics": ["clothing"], "cadence": "daily", - "fetch": "skip", - "skipReason": "Cloudflare JS challenge — body returns 152kb but body is the challenge page, not content.", - "notes": "Simon Crompton on craft tailoring and permanent-wardrobe pieces. Deep, evidence-led reviews." + "fetch": "feed", + "feedUrl": "https://www.permanentstyle.com/feed", + "notes": "Simon Crompton on craft tailoring and permanent-wardrobe pieces. Deep, evidence-led reviews. Feed bypasses the Cloudflare challenge — validated 2026-07-03 (permanentstyle.com/feed); switched from fetch:skip to fetch:feed." }, { "name": "Heddels", @@ -248,7 +278,9 @@ "type": "shop-blog", "topics": ["clothing"], "cadence": "weekly", - "notes": "Bay Area shop's editorial — small-batch workwear and Japanese makers, with substantive notes per piece. The journal lives at /blogs/standard-strange-stories." + "fetch": "feed", + "feedUrl": "https://www.standardandstrange.com/blogs/standard-strange-stories.atom", + "notes": "Bay Area shop's editorial — small-batch workwear and Japanese makers, with substantive notes per piece. The journal lives at /blogs/standard-strange-stories. Feed validated 2026-07-03 (standardandstrange.com/blogs/standard-strange-stories.atom)." }, { "name": "Outlier", @@ -264,7 +296,9 @@ "type": "shop", "topics": ["clothing", "tools"], "cadence": "ongoing", - "notes": "Japanese outdoors brand whose apparel and titanium kit reliably qualify as 'delightful daily-use.'" + "fetch": "feed", + "feedUrl": "https://www.snowpeak.com/blogs/news.atom", + "notes": "Japanese outdoors brand whose apparel and titanium kit reliably qualify as 'delightful daily-use.' Product grid is JS-rendered and not scrapable, but the Journal/news blog has a working feed — validated 2026-07-03 (snowpeak.com/blogs/news.atom); switched to fetch:feed for editorial content (apparel drops still need manual review)." }, { "name": "Mr Porter Journal", @@ -282,8 +316,9 @@ "type": "forum", "topics": ["clothing"], "cadence": "daily", - "fetch": "curl", - "notes": "Long threads (some 1000+ pages) where subject-matter obsessives compare specific brands — best for deep dives, not browsing. WebFetch hits 403; curl with Safari UA returns the full forum index." + "fetch": "feed", + "feedUrl": "https://www.styleforum.net/forums/-/index.rss", + "notes": "Long threads (some 1000+ pages) where subject-matter obsessives compare specific brands — best for deep dives, not browsing. WebFetch hits 403; curl with Safari UA returns the full forum index. Forum-wide 'recent posts' RSS also validated 2026-07-03 (styleforum.net/forums/-/index.rss) — noisier (spans all subforums) but reliably fresh; switched from fetch:curl to fetch:feed." }, { "name": "Atlas Obscura", @@ -291,8 +326,9 @@ "type": "site", "topics": ["travel", "general-delight"], "cadence": "daily", - "fetch": "curl", - "notes": "The definitive catalog of unusual places. Use the 'Places' filter for destinations; the editorial covers oddities globally. Quirk: returns HTTP 403 status with real HTML body — the skill should ignore the status code when the body parses as content." + "fetch": "feed", + "feedUrl": "https://www.atlasobscura.com/feeds/latest", + "notes": "The definitive catalog of unusual places. Use the 'Places' filter for destinations; the editorial covers oddities globally. Quirk: returns HTTP 403 status with real HTML body — the skill should ignore the status code when the body parses as content. Feed at /feeds/latest fully bypasses the Cloudflare block — validated 2026-07-03, 27 items all dated within the last week; switched from fetch:curl to fetch:feed." }, { "name": "Roadtrippers Magazine", @@ -300,7 +336,9 @@ "type": "magazine", "topics": ["travel"], "cadence": "weekly", - "notes": "North-America-leaning road trip routes and stops, often hitting roadside oddities." + "fetch": "feed", + "feedUrl": "https://roadtrippers.com/feed", + "notes": "North-America-leaning road trip routes and stops, often hitting roadside oddities. Feed validated 2026-07-03 (roadtrippers.com/feed) — served from the site root (not /magazine specifically) but content is the Magazine's own travel/RV articles, fresh within the last month." }, { "name": "Spotted by Locals", @@ -318,7 +356,9 @@ "type": "blog", "topics": ["travel", "general-delight"], "cadence": "weekly", - "notes": "'13 Things I Found on the Internet' weekly roundup; lots of obscure travel + cultural curiosities." + "fetch": "feed", + "feedUrl": "https://www.messynessychic.com/feed/", + "notes": "'13 Things I Found on the Internet' weekly roundup; lots of obscure travel + cultural curiosities. Feed validated 2026-07-03 (messynessychic.com/feed/)." }, { "name": "The Outbound Collective", @@ -334,8 +374,9 @@ "type": "site", "topics": ["travel"], "cadence": "ongoing", - "fetch": "curl", - "notes": "Catalog of architecturally unusual stays — treehouses, ice hotels, repurposed structures. Earlier sources.json had wrong domain (uhotw.com — now a gambling site)." + "fetch": "skip", + "skipReason": "SPA shell (~4KB, JS-rendered) with no server-rendered content — confirmed 2026-06-21 and 2026-07-03; /feed and /rss.xml guesses return the same empty shell, not real feeds.", + "notes": "Catalog of architecturally unusual stays — treehouses, ice hotels, repurposed structures. Earlier sources.json had wrong domain (uhotw.com — now a gambling site). Confirmed dead end 2026-07-03 — no working feed; switched to fetch:skip." }, { "name": "AFAR", @@ -351,7 +392,9 @@ "type": "magazine", "topics": ["travel"], "cadence": "weekly", - "notes": "Design-forward stays and destinations — overlaps with architectural delight." + "fetch": "feed", + "feedUrl": "https://www.wallpaper.com/feeds/tag/travel", + "notes": "Design-forward stays and destinations — overlaps with architectural delight. Feed validated 2026-07-03 (wallpaper.com/feeds/tag/travel) — travel-tag-specific, fresher and more targeted than the site-wide feeds.xml." }, { "name": "Boutique Homes", @@ -367,7 +410,9 @@ "type": "blog", "topics": ["general-delight"], "cadence": "daily", - "notes": "Jason Kottke's link blog. The single best low-noise feed for cross-disciplinary delight." + "fetch": "feed", + "feedUrl": "https://feeds.kottke.org/main", + "notes": "Jason Kottke's link blog. The single best low-noise feed for cross-disciplinary delight. Feed validated 2026-07-03 (feeds.kottke.org/main)." }, { "name": "The Browser", @@ -375,9 +420,9 @@ "type": "newsletter", "topics": ["general-delight"], "cadence": "daily", - "fetch": "skip", - "skipReason": "Paid newsletter, no public daily picks page. Manual review only.", - "notes": "Five hand-picked articles per day. Paid; the picks are unusually consistent." + "fetch": "feed", + "feedUrl": "https://thebrowser.com/free/rss/", + "notes": "Five hand-picked articles per day. Paid; the picks are unusually consistent. Correction 2026-07-03: the /free/rss/ feed is public and unauthenticated, delivering all ~5 daily picks with full summaries — no login needed. The 'no public picks page' assumption was wrong; switched from fetch:skip to fetch:feed." }, { "name": "Web Curios", @@ -385,9 +430,9 @@ "type": "newsletter", "topics": ["general-delight"], "cadence": "weekly", - "fetch": "curl", - "fetchUrl": "https://webcurios.co.uk/all-curios/", - "notes": "Matt Muir's enormous Friday roundup of internet curios. High volume, idiosyncratic taste. Use /all-curios/ — the homepage only lists newsletter titles." + "fetch": "feed", + "feedUrl": "https://webcurios.co.uk/feed/", + "notes": "Matt Muir's enormous Friday roundup of internet curios. High volume, idiosyncratic taste. Use /all-curios/ — the homepage only lists newsletter titles. The 2026-06-21 homepage ECONNREFUSED was transient — site and /feed/ both validated live 2026-07-03 (weekly cadence, latest dated today); switched from fetch:curl (/all-curios/) to fetch:feed." }, { "name": "Things Magazine", @@ -395,7 +440,9 @@ "type": "blog", "topics": ["general-delight", "gifts"], "cadence": "weekly", - "notes": "Quiet, image-heavy notes on objects, architecture, and obscure design corners." + "fetch": "feed", + "feedUrl": "https://www.thingsmagazine.net/feed/", + "notes": "Quiet, image-heavy notes on objects, architecture, and obscure design corners. Feed validated 2026-07-03 (thingsmagazine.net/feed/)." }, { "name": "Open Culture", @@ -403,7 +450,9 @@ "type": "blog", "topics": ["general-delight"], "cadence": "daily", - "notes": "Free cultural & educational media — adjacent to the brief but a steady source of unusual-thing stories." + "fetch": "feed", + "feedUrl": "https://www.openculture.com/feed", + "notes": "Free cultural & educational media — adjacent to the brief but a steady source of unusual-thing stories. Feed validated 2026-07-03 (openculture.com/feed)." }, { "name": "Kevin Kelly — kk.org", @@ -411,9 +460,9 @@ "type": "blog", "topics": ["tools", "general-delight"], "cadence": "weekly", - "fetch": "curl", - "fetchUrl": "https://kk.org/thetechnium/", - "notes": "Kelly's main site — the '68 Bits of Advice' / Excellent Advice posts often link out to delightful tools and books. Posts live at /thetechnium/; the homepage is a static about page." + "fetch": "feed", + "feedUrl": "https://kk.org/thetechnium/feed", + "notes": "Kelly's main site — the '68 Bits of Advice' / Excellent Advice posts often link out to delightful tools and books. Posts live at /thetechnium/; the homepage is a static about page. Feed validated 2026-07-03 (kk.org/thetechnium/feed); switched from fetch:curl to fetch:feed." }, { "name": "TidBITS", @@ -421,7 +470,9 @@ "type": "magazine", "topics": ["apple-tips", "macos-apps"], "cadence": "weekly", - "notes": "Adam Engst's long-running Apple-platform publication. Tip-rich, technically careful, never reckless — a steady source of considered advice." + "fetch": "feed", + "feedUrl": "https://tidbits.com/feed/", + "notes": "Adam Engst's long-running Apple-platform publication. Tip-rich, technically careful, never reckless — a steady source of considered advice. Feed validated 2026-07-03 (tidbits.com/feed/) — sidesteps the earlier 403-to-WebFetch issue entirely." }, { "name": "The Eclectic Light Company", @@ -429,7 +480,9 @@ "type": "blog", "topics": ["apple-tips"], "cadence": "daily", - "notes": "Howard Oakley's deep dives into macOS internals, system maintenance, and forgotten corners of the OS — endlessly delightful for anyone who likes pulling threads." + "fetch": "feed", + "feedUrl": "https://eclecticlight.co/feed/", + "notes": "Howard Oakley's deep dives into macOS internals, system maintenance, and forgotten corners of the OS — endlessly delightful for anyone who likes pulling threads. Feed validated 2026-07-03 (eclecticlight.co/feed/)." }, { "name": "Brett Terpstra", @@ -437,7 +490,9 @@ "type": "blog", "topics": ["apple-tips", "macos-apps"], "cadence": "weekly", - "notes": "Power-user Mac scripts, automation, and small utilities from the author of TextExpander/Marked — generous with workflow snippets and 'web excursions' link roundups." + "fetch": "feed", + "feedUrl": "http://brett.trpstra.net/brettterpstra", + "notes": "Power-user Mac scripts, automation, and small utilities from the author of TextExpander/Marked — generous with workflow snippets and 'web excursions' link roundups. Feed validated 2026-07-03 (the site's own declared feed URL, brett.trpstra.net/brettterpstra)." }, { "name": "Dr. Drang — leancrew.com", @@ -445,7 +500,9 @@ "type": "blog", "topics": ["apple-tips"], "cadence": "weekly", - "notes": "And now it's all this — engineer's perspective on macOS automation, command-line tricks, and Shortcuts. Quiet authority." + "fetch": "feed", + "feedUrl": "https://leancrew.com/all-this/feed/", + "notes": "And now it's all this — engineer's perspective on macOS automation, command-line tricks, and Shortcuts. Quiet authority. Feed validated 2026-07-03 (leancrew.com/all-this/feed/)." }, { "name": "r/shortcuts", @@ -453,9 +510,9 @@ "type": "subreddit", "topics": ["apple-tips"], "cadence": "daily", - "fetch": "curl", - "fetchUrl": "https://www.reddit.com/r/shortcuts/top/.json?t=week&limit=25", - "notes": "iOS/macOS Shortcuts community — sort by Top of the week to surface the cleverest automations. Reddit blocks WebFetch; use the JSON endpoint via curl with a UA header." + "fetch": "feed", + "feedUrl": "https://www.reddit.com/r/shortcuts/.rss", + "notes": "iOS/macOS Shortcuts community — sort by Top of the week to surface the cleverest automations. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too, but the unauthenticated default .rss endpoint still works — validated 2026-07-03 (reddit.com/r/shortcuts/.rss, 'new'-sorted); switched to fetch:feed, no OAuth needed." }, { "name": "OSXDaily", @@ -463,7 +520,9 @@ "type": "blog", "topics": ["apple-tips"], "cadence": "daily", - "notes": "Long-running daily Mac/iOS tip site. Signal is mixed but it surfaces obscure things others miss — good for the occasional gem." + "fetch": "feed", + "feedUrl": "https://osxdaily.com/feed/", + "notes": "Long-running daily Mac/iOS tip site. Signal is mixed but it surfaces obscure things others miss — good for the occasional gem. Feed validated 2026-07-03 (osxdaily.com/feed/)." }, { "name": "Quote Investigator", @@ -487,7 +546,9 @@ "type": "blog", "topics": ["quotes", "general-delight"], "cadence": "weekly", - "notes": "Maria Popova's literary essays, dense with sourced quotations from books worth tracking down. Formerly Brain Pickings." + "fetch": "feed", + "feedUrl": "https://feeds.feedburner.com/brainpickings/rss", + "notes": "Maria Popova's literary essays, dense with sourced quotations from books worth tracking down. Formerly Brain Pickings. Feed validated 2026-07-03 (feeds.feedburner.com/brainpickings/rss)." }, { "name": "A.Word.A.Day", @@ -495,7 +556,9 @@ "type": "newsletter", "topics": ["quotes"], "cadence": "daily", - "notes": "Anu Garg's daily word arrives with a 'Thought for Today' quotation — a reliable trickle of well-chosen lines." + "fetch": "feed", + "feedUrl": "https://wordsmith.org/awad/rss1.xml", + "notes": "Anu Garg's daily word arrives with a 'Thought for Today' quotation — a reliable trickle of well-chosen lines. Feed validated 2026-07-03 (wordsmith.org/awad/rss1.xml) — single daily item, matching the site's one-word-a-day cadence." }, { "name": "r/dadjokes", @@ -503,9 +566,9 @@ "type": "subreddit", "topics": ["dad-jokes"], "cadence": "daily", - "fetch": "curl", - "fetchUrl": "https://www.reddit.com/r/dadjokes/top/.json?t=week&limit=25", - "notes": "Heavily moderated for original groaners. Sort by Top of the week to filter out the recycled ones." + "fetch": "feed", + "feedUrl": "https://www.reddit.com/r/dadjokes/.rss", + "notes": "Heavily moderated for original groaners. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too, but the unauthenticated default .rss endpoint still works — validated 2026-07-03 (reddit.com/r/dadjokes/.rss, 'new'-sorted); switched to fetch:feed, no OAuth needed." }, { "name": "icanhazdadjoke",