Sometimes you build something because you see a need. Sometimes a billion-dollar company validates your thinking nine days later.
On February 3rd, 2026, I finished building System - Markdown, a Joomla plugin that automatically serves clean Markdown versions of web pages to AI agents. It took about six hours.
On February 12th, Cloudflare announced their Markdown-as-a-Service feature.
Great minds think alike, apparently. Except I think mine works better.
The Problem We Both Saw
AI agents are becoming a primary source of web traffic. ChatGPT Search, Perplexity, Google's AI Overview - they're all crawling websites and feeding content to large language models. And these AI systems have a preference: they want clean, structured content. Markdown, specifically.
HTML is messy. It's full of navigation menus, cookie notices, sidebar widgets, footer links, and advertising. AI agents don't want any of that. They want the actual content - the article, the product description, the documentation. Everything else is noise.
The question isn't whether sites should serve Markdown to AI agents. The question is how.
The Joomla Advantage
Here's what I realized: if you're working at the CMS level, you don't need to convert the entire page. You can strip away the decoration before conversion.
Joomla has a built-in feature that most people don't think about: component templates. When you add ?tmpl=component to a Joomla URL, you get just the main content component - no menus, no sidebars, no modules, no template chrome. Just the article or page content.
This is exactly what AI agents need.
So System - Markdown works like this:
- When a page loads, add RFC 8288 headers (both HTTP Link header and HTML
<link>element) pointing to the Markdown version - When an AI agent requests the Markdown version (via
?tmpl=markdown), use Joomla's component template to render just the content - Convert that clean HTML to Markdown
- Cache it
- Serve it with proper
Content-Type: text/markdownand canonical headers
The result? A typical article that would be 2,847 tokens as full-page Markdown comes out to 423 tokens of pure content.
The Six-Hour Build
Once I understood the problem, implementation was straightforward:
- Hook into Joomla's
onAfterDispatchevent to add the alternate link - Check if
tmpl=markdownis in the request - If yes, use the component template and convert to Markdown using the HTMLToMarkdown library
- Add caching via Joomla's built-in cache system
- Set proper headers and deliver
The installer script automatically copies a minimal template file to /templates/system/markdown.php:
<?php defined('_JEXEC') or die; ?>
<jdoc:include type="component" />
Just the component. No decoration. No <head> - nothing but the pure HTML body...but without the <body>
Total development time: about six hours, including testing and packaging.
Then Cloudflare Announced
Nine days after I finished building this, Cloudflare announced their Markdown service.
I literally laughed out loud.
Not because their idea is bad - it's brilliant. They saw exactly what I saw: AI agents need Markdown, and most websites aren't providing it.
I laughed because:
- We had the same insight independently. That's validating.
- I shipped first. That's satisfying.
- Mine's better. That's just facts.
Even Cloudflare Got This Wrong
Here's the thing that kills me: Cloudflare saw the same problem I did. AI agents need Markdown. Websites aren't serving it.
But instead of using the web standard for alternate content (RFC 8288), they invented their own HTTP header: cf-render-markdown.
Why? There's already a standard for this. It's been around since 2017. Every HTTP client understands it. Every search engine spider knows how to discover alternate content representations.
But Cloudflare created a proprietary header anyway.
Now every AI agent that wants to use Cloudflare's service has to:
- Know that Cloudflare's service exists
- Know to send the
cf-render-markdownheader - Implement Cloudflare-specific logic
- Hope that the site owner has paid for Cloudflare's Markdown service
That last one is the killer. Even if an AI agent knows to send the proprietary header, there's no way to discover whether the site actually supports it without trying and potentially failing.
How Standards-Based Discovery Actually Works
With RFC 8288, discovery happens in the HTTP headers - before a single byte of HTML is downloaded.
When an AI agent requests a page, System - Markdown sends:
HTTP/1.1 200 OK
Content-Type: text/html
Link: </article?tmpl=markdown>; rel="alternate"; type="text/markdown"
The crawler sees this header and knows instantly: "This page has a Markdown version at this URL."
It can switch targets immediately. No need to download the HTML. No need to parse the document. No guessing.
For crawlers that do parse the HTML, the same information is in the document head:
<link rel="alternate" type="text/markdown" href="/article?tmpl=markdown">
Two discovery mechanisms. Both standards-based. Both tell the AI agent exactly where to get clean Markdown.
Compare that to Cloudflare's approach: the AI agent has to blindly send a proprietary header to every site and hope:
- The site uses Cloudflare
- The site owner paid for the Markdown feature
- The feature is actually enabled
It's not discovery. It's gambling.
Efficiency Matters
Think about what this means for an AI crawler indexing millions of pages.
Cloudflare approach:
- Request page with proprietary header
- Download entire HTML response (whether it's Markdown or not)
- Hope it worked
- If it didn't work, you've wasted bandwidth on HTML you can't use efficiently
RFC 8288 approach:
- Request page
- Check HTTP headers
- If
Link: rel="alternate" type="text/markdown"exists, immediately request that URL instead - Get clean Markdown with zero wasted bandwidth
For a crawler hitting millions of sites, this efficiency difference is massive.
And that's before we even get to content quality. Cloudflare converts the entire page - navigation, ads, sidebars, everything. System - Markdown strips all that away first and converts only the actual content.
The Comparison
| Feature | Cloudflare | System - Markdown |
|---|---|---|
| Content Quality | Entire page (menus, ads, navigation) | Content only (pure signal) |
| Discovery Method | Proprietary header (hope site paid for it) | RFC 8288 standard (advertised in HTTP headers) |
| Discovery Timing | After downloading HTML | Before downloading HTML |
| Token Efficiency | ~2,847 tokens (full page example) | ~423 tokens (content only) |
| Cost | Paid service | Free |
| Configuration | Required | Zero |
| Standards Compliance | Proprietary | RFC 8288 |
The AEO/GEO Scam
Let me tell you about a trend that's been driving me insane.
For the past few years, SEO consultants have been rebranding themselves as "AEO experts" (Answer Engine Optimization) or "GEO specialists" (Generative Engine Optimization). They charge premium rates to help you "optimize for AI agents."
Their solutions? Proprietary schema markup that doesn't validate. Custom XML formats. LLMS.txt files. Expensive "datasets" that promise to make your content AI-friendly.
It's all bullshit.
Take jmodules.com's "AI Ready" Joomla extension. They invented their own schema format that doesn't even validate as proper JSON (forget JSON-LD). It's filled with what they claim is "AI-optimized metadata." It's garbage. Search engines ignore it. AI agents ignore it. But it sounds sophisticated, so people pay for it...until they pulled it from their website. Now you can only see it in action during a YouTube interview.
Or the LLMS.txt trend - yet another proprietary format that requires AI agents to know about your specific implementation.
Here's what Lily Ray has been saying for years: AEO and GEO are just SEO with a bigger price tag. I've been saying it too, but I'm not SEO royalty like she is - so don't pay any attention to the man behind the curtain.
You don't need proprietary formats. You don't need custom schemas. You don't need expensive consulting to "prepare for AI."
You need to use standards that already exist.
The Standards Were Always There
Markdown: Created in 2004. Twenty-two years of proven track record. Every developer knows it. Every AI model consumes it better than HTML. It's not new. It's not proprietary. It just works.
RFC 8288: Published in 2017. Nine years old. It's the web standard for declaring alternate content representations. Every search engine spider understands it. Every HTTP client library supports it.
Link: </article?tmpl=markdown>; rel="alternate"; type="text/markdown"
That's the entire "secret."
No proprietary headers. No paid features. No guessing whether the site supports it. Just existing standards, used correctly.
The AI agent knows - from the first HTTP response - exactly where to get the Markdown version. No HTML parsing required. No bandwidth wasted. No gambling.
Why People Fall for Proprietary Solutions
Because they sound sophisticated.
"We've developed a proprietary AI optimization schema based on our research into LLM token economics and semantic parsing algorithms" sounds way more impressive than "we use Markdown and standard HTTP headers."
But impressive-sounding doesn't mean effective.
Proprietary formats have fundamental problems:
- Discoverability: AI agents have to know your specific format exists
- Adoption: Every AI system has to implement support for your format
- Maintenance: You're responsible when it breaks
- Validation: There's no specification to validate against
- Longevity: What happens when the vendor disappears?
Standards, on the other hand:
- Discoverability: Built into HTTP
- Adoption: Already implemented everywhere
- Maintenance: The IETF handles it
- Validation: Clear specifications
- Longevity: Backward compatible for decades
Cloudflare will eventually realize this. They'll probably add RFC 8288 support alongside their proprietary header. Because that's what standards-based thinking leads to: eventually doing it right.
The Real Optimization Strategy
Want to optimize for AI agents? Here's the actual playbook:
- Serve clean content. Strip the navigation and decoration before AI agents see it.
- Use standard formats. Markdown is battle-tested and universally supported.
- Follow web standards. RFC 8288 for content discovery. Proper HTTP headers.
- Cache aggressively. AI crawlers hit hard. Be ready.
- Don't overthink it. The answer isn't complicated proprietary systems - it's using existing standards correctly.
That's the entire strategy.
If someone is trying to sell you an "AEO platform" or "GEO consulting package" based on proprietary formats, ask them one question: "Why not just use Markdown and RFC 8288?"
If they can't give you a straight answer, walk away.
Why This Matters
AI agents are becoming the primary way people discover content. If you're not serving clean, structured content to these systems, you're invisible to an increasingly important traffic source.
But here's the thing: you don't need a billion-dollar company's infrastructure to solve this problem. If you're running a CMS like Joomla, you already have everything you need. You just need to think about the problem correctly.
Strip the decoration first. Then convert to Markdown. Use web standards for discovery. Cache the results. Done.
What This Says About CMS Architecture
There's a larger point here about architectural choices.
Cloudflare operates at the edge - between the client and your server. They see HTTP requests and responses, but they don't understand your content structure. They can't distinguish between navigation and content without throwing significant compute at the problem - and that slows things down. They only convert what you send them because doing more costs money.
A CMS, on the other hand, knows the difference between your article and your navigation menu. It knows what's content and what's decoration. This architectural knowledge is a competitive advantage that external services simply cannot replicate.
Joomla's component template system has existed for years. I didn't invent anything new - I just applied existing functionality to a new problem. That's the power of good architecture: it enables solutions to problems you didn't anticipate when you built it.
The Release
System - Markdown is pending acceptance in the Joomla Extensions Directory. Free, open source, GPL licensed. You can download it now from the download page here: System - Markdown
Install it. Enable it. Every page on your Joomla site immediately becomes AI-ready. No configuration. No API keys. No monthly fees.
Just clean Markdown, properly discoverable via web standards, cached for performance.
The way it should be.
The Lesson
The people charging premium prices for "AI optimization" are selling you complexity when the answer is simple.
Use standards. They're free. They work. They'll still work in ten years.
When you see a problem, build the solution. Don't wait for permission. Don't wait for a big company to validate the idea.
If you're right, they'll figure it out eventually. And when they announce it nine days later, you'll already be shipping.
The "secret sauce" everyone's been trying to sell you? It's been freely available since 2004. You just needed someone to point it out.