ea58039fb9
Make the summary pages discoverable so traffic compounds passively: - /today: a server-rendered, shareable + indexable digest of today's brief — each item's title (→ /a summary), our summary, and a source link. OG/Twitter meta + self-canonical. - /sitemap.xml: dynamic — home, /today, and every accepted non-duplicate /a page with lastmod. robots.txt allows all and points to it. - Home (SPA shell) gains canonical + OG/Twitter tags for cleaner unfurls. - Caddy routes /today + /sitemap.xml to the API. 133 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
1.4 KiB
HTML
26 lines
1.4 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />
|
|
<link rel="manifest" href="%sveltekit.assets%/manifest.webmanifest" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="theme-color" content="#0083ad" />
|
|
<meta name="description" content="Calm, constructive news worth your attention — and nothing that isn't." />
|
|
<title>Upbeat Bytes — calm, constructive news</title>
|
|
<link rel="canonical" href="https://upbeatbytes.com/" />
|
|
<meta property="og:site_name" content="Upbeat Bytes" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:title" content="Upbeat Bytes — calm, constructive news" />
|
|
<meta property="og:description" content="Calm, constructive news worth your attention — and nothing that isn't. Summarized, so you get the gist and go deeper only if you want." />
|
|
<meta property="og:url" content="https://upbeatbytes.com/" />
|
|
<meta name="twitter:card" content="summary" />
|
|
<meta name="twitter:title" content="Upbeat Bytes — calm, constructive news" />
|
|
<meta name="twitter:description" content="Calm, constructive news, summarized — get the gist, go deeper only if you want." />
|
|
%sveltekit.head%
|
|
</head>
|
|
<body data-sveltekit-preload-data="hover">
|
|
<div style="display: contents">%sveltekit.body%</div>
|
|
</body>
|
|
</html>
|