A curated showcase of transparent RSS transformations, full-text DOM extractions, and layout enhancements engineered to rescue the open web from truncated feeds and publisher clutter.
RSS was promised as the open, decentralized antidote to algorithmic feeds and walled gardens. Yet today, many prominent publishers deliberately handicap their syndication feeds: cutting off investigative reporting after two sentences to force click-throughs, withholding featured hero photos, hiding comic punchlines in unreadable tooltips, or injecting third-party Outbrain tracking grids directly into XML payloads.
PuckaFeed sits silently between upstream publishers and your RSS reader as a high-speed, fail-safe interceptor proxy. Built with Python 3.11, FastAPI, BeautifulSoup4, and lxml, it transforms dirty or truncated feeds in real time, serving standard, beautifully structured RSS XML back to any subscriber.
https://www.puckaway.org/feed?url=<ENCODED_FEED>feeds.puckaway.org with Antigravity Forest theme & custom CSSSubscribing to an enhanced feed requires only one modification: prefixing the original publisher's feed URL with the PuckaFeed public endpoint.
https://www.puckaway.org/feed?url=<ENCODED_OR_RAW_UPSTREAM_URL>
When your reader requests this URL, PuckaFeed performs four automated pipeline stages in fractions of a second:
lxml to preserve publication dates, GUIDs, authors, and category tags.arstechnica.com, protos.com) and executes targeted BeautifulSoup cleaners; unknown feeds automatically receive safe generic hero extraction.URL is not allowed to be resolved. To fetch through PuckaFeed, set INTERNAL_HOST_ALLOWLIST: "*" in your FreshRSS compose.yaml environment.
Here is our directory of enhanced feeds currently running live in the Puckanet cluster. Each entry highlights the publication's focus, the limits of their native syndication, and the exact enhancements PuckaFeed injects.
Founded by former Jalopnik veterans David Tracy and Jason Torchinsky, The Autopian delivers witty, deeply technical automotive engineering deep dives, bizarre car history, and passionate car culture without corporate fluff.
Upstream RSS isolates featured photography solely in enclosure metadata rather than inline HTML. Most RSS readers display articles as barren text blocks with zero lead imagery.
Automatically extracts featured image enclosures and prepends a responsive, full-width <p class="puckafeed-hero"> image banner at the top of every article.
For over two decades, the benchmark for enterprise technology analysis, Linux and open-source policy, space exploration, scientific discoveries, and cybersecurity investigations.
Truncates comprehensive 3,000-word articles into 2-paragraph teaser stubs to drive web clicks; litters articles with inline newsletter prompts and trailing Yahoo Media duplicate images.
Real-time multi-container full-text scraper fetches canonical pages, stitches all .post-content containers, strips ad blocks, moves hero art to the top, and eliminates Yahoo Media duplicates.
The premier open-source local home automation hub. The official feed carries monthly Core release notes, State of the Open Home announcements, hardware launches, and ESPHome updates.
Significant announcements often cross-post as short two-sentence teaser summaries redirecting to esphome.io or openhomefoundation.org, requiring manual tab clicking.
Multi-domain scraper detects teaser stubs across Home Assistant, ESPHome, and Open Home Foundation domains, scrapes the target article body, and injects complete release notes inline.
Unflinching investigative journalism focused on crypto-finance, regulatory actions, scam unraveling, and financial forensics without venture capital promotional spin.
Clogged with recurring tip line pitches, syndication footers, broken internal WordPress embed iframes, unrendered wp-smiley GIFs, and insecure mixed-content HTTP image links.
Purges tip promos, internal WP embed iframes, and reading time badges; upgrades HTTP image links to HTTPS; converts emoji GIFs to native Unicode; and injects featured enclosure artwork.
The trailblazing webcomic chronicling gaming and internet culture by Mike Krahulik and Jerry Holkins, accompanied by Holkins' distinctively literary editorial essays.
Incredibly, comic updates in the RSS feed contain only the news post text. The actual comic strip image itself is completely missing from the syndicated feed payload!
Detects comic posts, fetches the live page, extracts all individual panel images (assets.penny-arcade.com/comics/panels/), and prepends them inside a dedicated .penny-arcade-comic container.
Randall Munroe's beloved webcomic of romance, sarcasm, math, and physics. Each comic is renowned for having an essential second punchline hidden in the hover text.
The punchline is stored exclusively inside the image's title attribute. On mobile devices and touchscreens, mouseover tooltips cannot be triggered, hiding the joke.
Extracts the title and alt metadata attributes and dynamically inserts a styled <p class="xkcd-hover-caption"> blockquote directly beneath the comic.
Josh Fruhlinger's legendary, hilarious daily deconstruction and snarky commentary on classic syndicated newspaper comics (Mary Worth, Rex Morgan, Mark Trail, Slylock Fox).
Polluted with administrative "Metapost" donation stubs, recurring multi-paragraph pitches for Josh's novel The Enthusiast, and unconstrained comic strip dimensions.
Completely filters and drops entries with "Metapost" in the title; purges novel promotion copy using regex; and standardizes image sizing for clean newspaper reading.
The web's leading independent tool enthusiast publication, delivering in-depth hands-on testing, new tool releases, and honest evaluations of cordless and hand tools.
Articles are cluttered with intrusive Outbrain sponsored recommendation widgets, YARPP (Yet Another Related Posts Plugin) blocks, and multi-row affiliate thumbnail link grids.
Recursively strips all Outbrain containers, YARPP related post blocks, affiliate thumbnail grids, and "You Might Also Like" teasers, leaving clean, focused workshop reviews.
Paste any native RSS, Atom, or media feed URL below to instantly generate the clean PuckaFeed subscription link. You can also click any of our preset quick-picks to load them immediately.
To allow readers to style enhanced content cleanly, PuckaFeed tags its injected elements with semantic CSS class names. While PuckaFeed feeds look great out of the box in standard readers, you can drop the following CSS snippet into your RSS reader (e.g. FreshRSS user.css, Reeder custom styles, Stylus extension, or NetNewsWire themes) for pixel-perfect presentation.
| CSS Selector | Target Element | Description & Behavior |
|---|---|---|
.puckafeed-hero img |
Hero Enclosure Images | Full-width top featured artwork injected for feeds with enclosure media (The Autopian, Protos, generic feeds). |
.penny-arcade-comic img |
Comic Panels | Multi-panel comic strips scraped and rendered above Penny Arcade commentary. |
.xkcd-hover-caption |
Alt-Text Punchlines | Styled quote block displaying the mouseover punchline beneath xkcd comic panels. |
.wide-comic-strip |
Widescreen Newspaper Comics | Horizontal comic images with aspect ratio ≥ 1.95 on mobile devices. |
Here is the exact CSS ruleset we use on our own FreshRSS instance at feeds.puckaway.org:
/* ============================================================
PuckaFeed Semantic Enhancements for RSS Readers
============================================================ */
/* 1. Lead / Featured Hero Images */
.puckafeed-hero {
margin: 0 0 1.5rem 0;
text-align: center;
}
.puckafeed-hero img {
max-width: 100% !important;
height: auto !important;
border-radius: 8px;
display: block;
margin: 0 auto;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
/* 2. xkcd Hover Text Blockquote */
.xkcd-hover-caption {
margin: 1.2rem auto 0.8rem auto;
padding: 0.85rem 1.2rem;
background: rgba(100, 223, 129, 0.10);
border-left: 3px solid #64df81;
border-radius: 6px;
font-style: italic;
font-size: 0.95rem;
color: #f0f5f1;
line-height: 1.5;
max-width: 650px;
text-align: left;
}
/* 3. Penny Arcade Multi-Panel Comic */
.penny-arcade-comic {
margin-bottom: 1.8rem;
text-align: center;
}
.penny-arcade-comic img {
max-width: 100% !important;
max-height: 70vh !important;
object-fit: contain;
margin: 0.6rem auto;
display: block;
border-radius: 6px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}
/* 4. Mobile Responsive Comic Sizing */
@media (max-width: 840px) {
/* Widescreen newspaper strips expand full width */
.wide-comic-strip,
img[src*="joshreads.com"],
.penny-arcade-comic img {
max-width: 100% !important;
max-height: 60vh !important;
border-radius: 4px;
}
}
If Jeff has provisioned you an Authentik homelab account, you have immediate access to your own private, cloud-synced FreshRSS instance on Puckanet. Even without an account, you can subscribe using any RSS reader on your phone, tablet, or laptop.
FreshRSS keeps all your read states and starred articles synchronized across all your devices, with support for Google Reader and Fever API mobile sync apps (like Reeder, NetNewsWire, and FeedMe).
Navigate to feeds.puckaway.org and log in with your single sign-on credentials.
Click the Add a feed or category (+) icon in the navigation bar.
Paste any generated https://www.puckaway.org/feed?url=... link into the Feed URL input.
Prefer a native desktop or mobile application without a web portal? Every PuckaFeed URL works universally in any standard feed client:
NetNewsWire (free & open source) or Reeder. Open File → New Web Feed, and paste the URL.
FeedMe or Feeder. Both support direct RSS XML subscriptions and full offline reading.
Feedbro browser extension (Chrome / Firefox) or Thunderbird RSS feeds.
Have a favorite publication whose RSS feed is truncated, broken, or loaded with ad junk? Adding a new site cleaner to PuckaFeed takes just a few lines of Python.
from bs4 import BeautifulSoup
import re
def clean_newsite(soup: BeautifulSoup, media_url: str = None) -> BeautifulSoup:
"""
Cleaner routine for newsite.com:
- Strips unwanted ad containers and promotional banners
- Prepends featured lead image if missing
"""
# 1. Strip unwanted promo widgets
for promo in soup.find_all(['div', 'section'], class_=re.compile(r'newsletter|promo|sponsored')):
promo.decompose()
# 2. Inject featured lead image if enclosure exists
if media_url and not soup.find('img'):
hero_tag = soup.new_tag('p', attrs={'class': 'puckafeed-hero'})
img_tag = soup.new_tag('img', attrs={
'src': media_url,
'alt': 'Lead Image',
'style': 'max-width: 100%; height: auto; display: block; margin: 0 auto 1.5rem auto; border-radius: 6px;'
})
hero_tag.append(img_tag)
soup.insert(0, hero_tag)
return soup
Because the PuckaFeed container uses a live volume mount to /opt/stacks/puckafeed, restarting the container immediately activates new cleaners:
ssh goondocks "cd /opt/stacks/puckafeed && docker compose restart"