---
import '@fontsource-variable/inter';
import '@fontsource-variable/outfit';
interface Props {
title: string;
description?: string;
}
const { title, description = 'An extremely fast security scanner in Rust. Free, open source, 10+ languages, cross-file taint tracking, sub-second scans.' } = Astro.props;
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content={description} />
<meta name="theme-color" content="#0C0A09" />
<meta name="author" content="0sec Labs" />
<meta name="keywords" content="security scanner, static analysis, SAST, taint tracking, Rust, Semgrep alternative, code security, vulnerability scanner" />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:type" content="website" />
<meta property="og:url" content={canonicalURL} />
<meta property="og:image" content="https://foxguard.dev/og-image.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={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content="https://foxguard.dev/og-image.png" />
<link rel="canonical" href={canonicalURL} />
<link rel="icon" type="image/png" href="/favicon.png" />
<script type="application/ld+json" set:html={JSON.stringify({
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "foxguard",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "macOS, Linux, Windows",
"description": description,
"url": "https://foxguard.dev",
"author": { "@type": "Organization", "name": "0sec Labs", "url": "https://github.com/0sec-labs" },
"license": [
"https://opensource.org/licenses/MIT",
"https://www.apache.org/licenses/LICENSE-2.0"
],
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }
})} />
<title>{title}</title>
</head>
<body class="site-shell bg-noir-950 text-noir-300 font-body antialiased min-h-screen">
<div class="ambient-orb ambient-orb-fox"></div>
<div class="ambient-orb ambient-orb-slate"></div>
<div class="page-noise"></div>
<div class="hidden sm:block" style="position:fixed;top:0;bottom:0;width:1px;background:rgba(68,64,60,0.5);z-index:50;pointer-events:none;left:max(1.5rem,calc((100vw - 1024px)/2))"></div>
<div class="hidden sm:block" style="position:fixed;top:0;bottom:0;width:1px;background:rgba(68,64,60,0.5);z-index:50;pointer-events:none;right:max(1.5rem,calc((100vw - 1024px)/2))"></div>
<slot />
</body>
</html>
<style is:global>
@import '../styles/global.css';
</style>