Files
AOS/src/app/layout.tsx
T

69 lines
1.8 KiB
TypeScript

import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { Toaster as Sonner } from "@/components/ui/sonner";
import { ThemeProvider } from "@/components/theme-provider";
const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "AOS — Agency Operating System",
description:
"Eine selbstgehostete Plattform, die eine Software-Agentur end-to-end betreibt: Leads, CRM, Projekte, Lizenzen, Finanzen — mit EU/DE-Compliance.",
keywords: [
"AOS",
"Agency OS",
"CRM",
"Leads Finder",
"Lizenzmanagement",
"E-Rechnung",
"DSGVO",
"GoBD",
],
authors: [{ name: "Nordlicht Digital GmbH" }],
manifest: "/manifest.json",
appleWebApp: {
capable: true,
title: "AOS",
statusBarStyle: "black",
},
icons: {
icon: "https://z-cdn.chatglm.cn/z-ai/static/logo.svg",
apple: "https://z-cdn.chatglm.cn/z-ai/static/logo.svg",
},
openGraph: {
title: "AOS — Agency Operating System",
description:
"Selbstgehostete Agentur-Plattform mit CRM, Leads Finder, Projekten, Lizenzen und Finanzen.",
siteName: "AOS",
type: "website",
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="de" suppressHydrationWarning>
<body
className={`${geistSans.variable} ${geistMono.variable} antialiased bg-background text-foreground`}
>
<ThemeProvider attribute="class" defaultTheme="light" enableSystem={false}>
{children}
<Sonner position="bottom-right" richColors={false} closeButton />
</ThemeProvider>
</body>
</html>
);
}