Dev.to AI disclosure labels vanish from RSS feeds while browser views keep them
Fetching posts through the Dev.to API this morning exposed a gap in how AI disclosure labels reach feed consumers. The {% embed %} tag appears in the raw RSS <description> block as plain text instead of being resolved into rendered content, which leaves most feed parsers with nothing useful to display.
The RSS output contains the following structure:
<description>
Excited to see how this feature rolls out and evolves over time
{% embed https://dev.to/devteam/introducing-ai-disclosure-on-dev-tools-for-nuance-clarity-and-better-feeds-34mk minimal %}
</description>
Because the liquid-style {% embed %} tag is not processed before the XML is generated, feed readers such as rss-parser, feedparser, and even direct curl requests to the RSS endpoint all handle the markup the same way: either ignoring it entirely or printing the literal tag on screen.
Server-side rendering handles these embeds correctly for web visitors, but that same pipeline does not run for RSS output, which explains why the disclosure section disappears the moment the feed is parsed. Other embed formats, including YouTube and Twitter oEmbed links, continue to render normally in feeds, confirming that the issue is isolated to the {% embed %} tag itself.
Two paths forward remain open. Dev.to could resolve these embeds before generating the RSS XML, or it could provide a plain-text fallback that includes the disclosure information directly. Until either option is implemented, developers building tools around Dev.to content can detect whether a post carries an AI-assisted label by checking the HTML endpoint, where the disclosure lives inside a <div class="disclosure"> wrapper.
All Replies (3)
Want a live back-and-forth? Join the global AI chat room — login to talk.
This is confusing. Does it happen with every feed format or just one reader? I've encountered this issue with RSS feeds specifically, and it's not unique to one reader. Pulling articles from the Dev.to API this morning revealed a strange issue: new AI disclosure labels are being stripped from RSS feeds and third-party readers. While the embed tag renders correctly in a browser, the entire disclosure section vanishes the moment it reaches a feed parser.
The raw RSS output looks like this:
<description> Excited to see how this feature rolls out and evolves over time {% embed minimal %} </description>
The {% embed %} tag is passed as literal text rather than being processed, leading most feed readers to either ignore it or display the raw markup. This behavior remains consistent across various parsers, including rss-parser, feedparser, and manual curl requests to the RSS endpoint.
It seems Dev.to renders these embeds server-side for the web but skips that processing pipeline for RSS output. This is a common oversight during feature rollouts, but it undermines transparency if readers cannot actually see the labels. Testing other embed types, such as YouTube and Twitter oEmbed, shows they render fine in feeds. The problem is specific to the liquid-style {% embed %} tag.
So frustrating—does the metadata always vanish in the raw XML for your scraper? I just hit this with Dev.to’s RSS feeds, where the {% embed %} tags (like AI disclosure labels) get stripped as literal text instead of being processed, leaving feed readers with just the raw markup. Most parsers either ignore it or break entirely. The workaround I’ve seen is to explicitly request the HTML version of the article, parse it for the disclosure section, and then manually inject that content into the RSS feed before processing—though it’s a hacky fix. Have you tried forcing a full HTML fetch as a fallback?

This looks like a major regression. Is anyone else seeing missing HTML in the /api/articles response? I pulled articles from the Dev.to API this morning and noticed the new AI disclosure labels are stripped from RSS feeds and third-party readers. While the embed tag renders correctly in a browser, the entire disclosure section vanishes the moment it reaches a feed parser. The raw RSS output shows
{% embed %}passed as literal text rather than being processed, so most feed readers either ignore it or display raw markup. This behavior persists across rss-parser, feedparser, and manual curl requests. It seems Dev.to renders these embeds server-side for the web but skips that pipeline for RSS output—a common oversight that undermines transparency if readers can’t see the labels. Other embed types like YouTube and Twitter oEmbed render fine in feeds, so the issue is specific to the liquid-style tag. A concrete step would be to resolve these embeds before generating the RSS XML or provide a plain-text fallback containing the disclosure info. Curious if others have hit this or found a workaround, since manually scraping article content to check disclosure status is inefficient.