Guillermo Rauch shared that Vercel’s changelog now serves markdown when agents request it. Same URL, different Accept header.

The insight isn’t the size reduction - it’s that an entire infrastructure layer (CSS, JS, frameworks) is becoming optional for a growing class of consumers.

How it works

HTTP content negotiation. Browsers send Accept: text/html. Agents can send Accept: text/markdown. Same URL, different representation.

I added this to my Hugo blog. The config:

[outputs]
page = ['HTML', 'MARKDOWN']

[outputFormats.MARKDOWN]
baseName = 'index'
mediaType = 'text/markdown'
isPlainText = true

The middleware (Vercel Edge):

export const config = { matcher: ['/', '/posts/:path*'] }

export default async function middleware(request) {
if (request.he...

Similar Posts

Loading similar posts...

Keyboard Shortcuts

Navigation
Next / previous item
j/k
Open post
oorEnter
Preview post
v
Post Actions
Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Recommendations
Add interest / feed
Enter
Not interested
x
Go to
Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/
General
Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help