40 lines
1.7 KiB
HTML
40 lines
1.7 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:title" content="happyDeliver - Test Your Email Deliverability" />
|
|
<meta
|
|
property="og:description"
|
|
content="Get detailed insights into your email configuration, authentication, spam score, and more. Open-source, self-hosted, and privacy-focused."
|
|
/>
|
|
<meta property="og:image" content="/img/og.webp" />
|
|
|
|
<!-- Twitter -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="happyDeliver - Test Your Email Deliverability" />
|
|
<meta
|
|
name="twitter:description"
|
|
content="Get detailed insights into your email configuration, authentication, spam score, and more. Open-source, self-hosted, and privacy-focused."
|
|
/>
|
|
<meta name="twitter:image" content="/img/og.webp" />
|
|
|
|
%sveltekit.head%
|
|
</head>
|
|
<body data-sveltekit-preload-data="hover">
|
|
<script>
|
|
// Apply theme before render to prevent flash
|
|
(function () {
|
|
const stored = localStorage.getItem("theme");
|
|
const theme =
|
|
stored ||
|
|
(window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
|
|
document.documentElement.setAttribute("data-bs-theme", theme);
|
|
})();
|
|
</script>
|
|
<div style="display: contents">%sveltekit.body%</div>
|
|
</body>
|
|
</html>
|