import Link from "next/link"; import type { Metadata } from "next"; import { ArrowRight, ArrowUpRight, Code2, Eye, Globe2, Lock, ShieldCheck, Sparkles, Zap, } from "lucide-react"; import { Button } from "@/components/ui/button"; import { ToolCard } from "@/components/tools/ToolCard"; import { allCategories, categoryLabels, getFeaturedTools, toolRegistry, type ToolCategory, } from "@/tools/registry"; import { AuroraBackground } from "@/components/marketing/AuroraBackground"; import { HeroStage } from "@/components/marketing/HeroStage"; import { ToolMarquee } from "@/components/marketing/ToolMarquee"; import { LogoMark } from "@/components/brand/Logo"; const BASE = (process.env.NEXT_PUBLIC_SITE_URL ?? "https://toolaro.org").replace(/\/$/, ""); const catStripBg: Record = { generator: "bg-cat-generator", calculator: "bg-cat-calculator", converter: "bg-cat-converter", text: "bg-cat-text", security: "bg-cat-security", image: "bg-cat-image", developer: "bg-cat-developer", }; const catRingHover: Record = { generator: "hover:ring-cat-generator/30", calculator: "hover:ring-cat-calculator/30", converter: "hover:ring-cat-converter/30", text: "hover:ring-cat-text/30", security: "hover:ring-cat-security/30", image: "hover:ring-cat-image/30", developer: "hover:ring-cat-developer/30", }; export const metadata: Metadata = { title: "Toolaro – Über 500 Webtools für jeden Tag", description: "Kostenlose Webtools für QR-Codes, Passwörter, Texte, Rechner und Developer-Aufgaben. Direkt im Browser, ohne Login, ohne Tracker. Über 500 Werkzeuge in einer Box.", alternates: { canonical: "/" }, openGraph: { title: "Toolaro – Über 500 Webtools für jeden Tag", description: "QR-Code Generator, Passwort-Generator, Prozentrechner, Wortzähler, Base64 Encoder, Timestamp Converter, JSON Formatter und 500+ weitere Webtools.", url: BASE, type: "website", }, }; export default function HomePage() { const featured = getFeaturedTools(); const newest = toolRegistry.slice(-6).reverse(); const totalTools = toolRegistry.length; const totalCategories = allCategories.filter((c) => toolRegistry.some((t) => t.category === c) ).length; const websiteSchema = { "@context": "https://schema.org", "@type": "WebSite", name: "Toolaro", url: BASE, potentialAction: { "@type": "SearchAction", target: `${BASE}/tools?search={search_term_string}`, "query-input": "required name=search_term_string", }, }; const organizationSchema = { "@context": "https://schema.org", "@type": "Organization", name: "Toolaro", url: BASE, logo: `${BASE}/brand/toolaro-logo.png`, }; return ( <>