Skip to content

Commit ea422ea

Browse files
author
molty3000
committed
SEO: sitemap with publications, JSON-LD on books page, canonical/OG on viewer
1 parent 2515e97 commit ea422ea

3 files changed

Lines changed: 80 additions & 4 deletions

File tree

books/index.html

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,22 @@
66

77
<!-- SEO Meta Tags -->
88
<title>21no.de — Publications</title>
9-
<meta name="description" content="Publications and long-form research from 21no.de." />
9+
<meta name="description" content="Long-form research from 21no.de — AI-native infrastructure, autonomous agents, verification economics, and systems engineering. Read The Next Frontier, The Agent Event Loop, and The Verification Trap." />
1010
<meta name="theme-color" content="#0a0a0b" />
1111

1212
<!-- Open Graph -->
1313
<meta property="og:type" content="website" />
1414
<meta property="og:url" content="https://21no.de/books/" />
1515
<meta property="og:title" content="21no.de — Publications" />
16-
<meta property="og:description" content="Publications and long-form research from 21no.de." />
16+
<meta property="og:description" content="Long-form research: AI-native infrastructure, autonomous agents, verification economics, and systems engineering." />
1717
<meta property="og:image" content="https://21no.de/logo-v2.png" />
18+
<meta property="og:site_name" content="21no.de" />
1819

1920
<!-- Twitter Card -->
2021
<meta name="twitter:card" content="summary_large_image" />
2122
<meta name="twitter:title" content="21no.de — Publications" />
23+
<meta name="twitter:description" content="Long-form research: AI-native infrastructure, autonomous agents, verification economics, and systems engineering." />
24+
<link rel="canonical" href="https://21no.de/books/" />
2225

2326
<!-- Favicon -->
2427
<link rel="icon" type="image/x-icon" href="/logo-v2.png" />
@@ -343,11 +346,38 @@
343346
"@type": "CollectionPage",
344347
"name": "21no.de Publications",
345348
"url": "https://21no.de/books/",
349+
"description": "Long-form research on AI-native infrastructure, autonomous agents, verification economics, and systems engineering.",
346350
"publisher": {
347351
"@type": "Organization",
348352
"name": "21no.de",
349353
"url": "https://21no.de"
350-
}
354+
},
355+
"itemListElement": [
356+
{
357+
"@type": "Article",
358+
"name": "The Verification Trap",
359+
"description": "AI writes code 16,000x cheaper than we can review it. The verification gap is the industry's biggest blind spot.",
360+
"url": "https://21no.de/viewer.html?file=the-verification-trap.md&label=Whitepaper",
361+
"datePublished": "2026-05-09",
362+
"author": { "@type": "Organization", "name": "21no.de" }
363+
},
364+
{
365+
"@type": "Article",
366+
"name": "The Agent Event Loop",
367+
"description": "The Simple Mechanics Behind AI Reasoning.",
368+
"url": "https://21no.de/viewer.html?file=agent-event-loop.md&label=Technical+Essay",
369+
"datePublished": "2026-05-08",
370+
"author": { "@type": "Organization", "name": "21no.de" }
371+
},
372+
{
373+
"@type": "Book",
374+
"name": "The Next Frontier",
375+
"description": "5 Technologies That Will Disrupt AI and Software Engineering by 2046.",
376+
"url": "https://21no.de/viewer.html?file=the-next-frontier.md&label=Book",
377+
"datePublished": "2026-05-08",
378+
"author": { "@type": "Organization", "name": "21no.de" }
379+
}
380+
]
351381
}
352382
</script>
353383
</head>

sitemap.xml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,34 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>https://21no.de/</loc>
5-
<lastmod>2026-05-05</lastmod>
5+
<lastmod>2026-05-09</lastmod>
66
<changefreq>weekly</changefreq>
77
<priority>1.0</priority>
88
</url>
9+
<url>
10+
<loc>https://21no.de/books/</loc>
11+
<lastmod>2026-05-09</lastmod>
12+
<changefreq>weekly</changefreq>
13+
<priority>0.9</priority>
14+
</url>
15+
<url>
16+
<loc>https://21no.de/viewer.html?file=the-next-frontier.md&label=Book</loc>
17+
<lastmod>2026-05-08</lastmod>
18+
<changefreq>monthly</changefreq>
19+
<priority>0.8</priority>
20+
</url>
21+
<url>
22+
<loc>https://21no.de/viewer.html?file=agent-event-loop.md&label=Technical+Essay</loc>
23+
<lastmod>2026-05-08</lastmod>
24+
<changefreq>monthly</changefreq>
25+
<priority>0.8</priority>
26+
</url>
27+
<url>
28+
<loc>https://21no.de/viewer.html?file=the-verification-trap.md&label=Whitepaper</loc>
29+
<lastmod>2026-05-09</lastmod>
30+
<changefreq>monthly</changefreq>
31+
<priority>0.8</priority>
32+
</url>
933
<url>
1034
<loc>https://kai.21no.de/</loc>
1135
<lastmod>2026-05-05</lastmod>

viewer.html

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,19 @@
44
<meta charset="utf-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1" />
66
<title>21no.de — Reader</title>
7+
<meta name="description" content="Read long-form research, essays, and technical deep-dives from 21no.de — AI-native infrastructure and systems engineering." />
78
<meta name="theme-color" content="#0a0a0b" />
89

10+
<!-- Open Graph / Social -->
11+
<meta property="og:type" content="article" />
12+
<meta property="og:url" content="https://21no.de/viewer.html" />
13+
<meta property="og:title" content="21no.de — Reader" />
14+
<meta property="og:description" content="Read long-form research, essays, and technical deep-dives from 21no.de." />
15+
<meta property="og:image" content="https://21no.de/logo-v2.png" />
16+
<meta property="og:site_name" content="21no.de" />
17+
<meta name="twitter:card" content="summary_large_image" />
18+
<link rel="canonical" href="https://21no.de/viewer.html" />
19+
920
<!-- Self-hosted fonts (Outfit + JetBrains Mono) -->
1021
<link rel="stylesheet" href="/static/fonts/fonts.css" />
1122

@@ -571,6 +582,17 @@ <h2>Could not load book</h2>
571582
// Set page title
572583
document.title = `${title} — 21no.de`;
573584

585+
// Update OG meta for social sharing
586+
const ogTitle = document.querySelector('meta[property="og:title"]');
587+
const ogDesc = document.querySelector('meta[property="og:description"]');
588+
const twTitle = document.querySelector('meta[name="twitter:title"]');
589+
if (ogTitle) ogTitle.content = `${title} — 21no.de`;
590+
if (ogDesc) ogDesc.content = subtitle || `Read "${title}" from 21no.de.`;
591+
if (twTitle) twTitle.content = `${title} — 21no.de`;
592+
// Update canonical to include the specific file
593+
const canonical = document.querySelector('link[rel="canonical"]');
594+
if (canonical) canonical.href = `https://21no.de${location.pathname}${location.search}`;
595+
574596
// Build header
575597
bookHeader.style.display = 'block';
576598
bookHeader.innerHTML = `

0 commit comments

Comments
 (0)