20 lines
1.4 KiB
TypeScript
20 lines
1.4 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Link from "next/link";
|
|
export const metadata: Metadata = { title: "Free tools", description: "Quick checks for email, edge security headers and DNS health.", robots: { index: false, follow: true }, alternates: { canonical: "/free" } };
|
|
export default function FreeIndex() {
|
|
const tools = [
|
|
{ title:"Email Auth Check (DMARC/SPF/DKIM)", excerpt:"See if DMARC, SPF and common DKIM selectors are configured.", href:"/free/email-check" },
|
|
{ title:"Edge Security Headers Check", excerpt:"Inspect HSTS, CSP, X-Frame-Options, Referrer-Policy and more.", href:"/free/edge-check" },
|
|
{ title:"DNS Health Snapshot", excerpt:"Look up A/AAAA, MX, NS and CAA records at a glance.", href:"/free/dns-health" }
|
|
];
|
|
return (
|
|
<section className="container py-12">
|
|
<h1 className="text-3xl font-semibold tracking-tight">Free tools</h1>
|
|
<p className="mt-2 text-muted-foreground">Helpful checks you can run in seconds. No sign-up needed.</p>
|
|
<div className="mt-6 grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
|
|
{tools.map((t)=>(<article key={t.href} className="card"><h2 className="text-lg font-semibold">{t.title}</h2><p className="mt-2 text-sm text-muted-foreground">{t.excerpt}</p><Link href={t.href} className="btn-primary mt-4 no-underline w-full text-center">Open</Link></article>))}
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|