Files

51 lines
2.1 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Upwatch — fast, dependable uptime monitoring from Cloudflare's edge." />
<meta name="robots" content="noindex,nofollow" />
<meta name="color-scheme" content="light dark" />
<meta name="theme-color" content="#ffffff" />
<script>
(() => {
try {
const storedTheme = localStorage.getItem('upwatch-theme');
const theme =
storedTheme === 'light' || storedTheme === 'dark'
? storedTheme
: matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light';
const root = document.documentElement;
root.classList.toggle('dark', theme === 'dark');
root.style.colorScheme = theme;
document.querySelector('meta[name="theme-color"]')?.setAttribute('content', theme === 'dark' ? '#171717' : '#ffffff');
} catch {
// Keep the default light theme when browser storage is unavailable.
}
})();
</script>
<link rel="icon" href="/favicon.ico" sizes="32x32" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Upwatch" />
<meta property="og:title" content="Upwatch — Uptime monitoring" />
<meta property="og:description" content="Fast, dependable uptime monitoring from Cloudflare's edge." />
<meta property="og:image" content="/og.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Upwatch — Uptime monitoring" />
<meta name="twitter:description" content="Fast, dependable uptime monitoring from Cloudflare's edge." />
<meta name="twitter:image" content="/og.png" />
<title>Upwatch — Uptime monitoring</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/client/main.tsx"></script>
</body>
</html>