Initial commit: Lageplan v1.0 - Next.js 15.5, React 19

This commit is contained in:
Pepe Ziberi
2026-02-21 11:57:44 +01:00
commit adf3dc8c1d
167 changed files with 34265 additions and 0 deletions

116
src/app/layout.tsx Normal file
View File

@@ -0,0 +1,116 @@
import type { Metadata, Viewport } from 'next'
import { Inter } from 'next/font/google'
import './globals.css'
import { Toaster } from '@/components/ui/toaster'
import { AuthProvider } from '@/components/providers/auth-provider'
import { ServiceWorkerRegister } from '@/components/providers/sw-register'
const inter = Inter({
subsets: ['latin'],
weight: ['400', '500', '600', '700'],
display: 'swap',
})
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://lageplan.ch'
export const metadata: Metadata = {
metadataBase: new URL(siteUrl),
title: {
default: 'Lageplan Digitale Einsatzdokumentation für Feuerwehren',
template: '%s | Lageplan',
},
description:
'Die moderne Krokier-App für Schweizer Feuerwehren. Einsatzpläne digital erstellen, Journal führen, Rapporte generieren direkt im Browser, ohne Installation.',
keywords: [
'Feuerwehr Software',
'Krokier App',
'Lageplan Feuerwehr',
'Einsatzdokumentation',
'Einsatzplanung',
'Feuerwehr App Schweiz',
'Einsatzjournal',
'Rapport Feuerwehr',
'Feuerwehr Krokierung',
'Einsatzleitung Software',
'Feuerwehr digital',
],
authors: [{ name: 'Lageplan.ch' }],
creator: 'Lageplan.ch',
publisher: 'Lageplan.ch',
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
'max-video-preview': -1,
'max-image-preview': 'large',
'max-snippet': -1,
},
},
openGraph: {
type: 'website',
locale: 'de_CH',
url: siteUrl,
siteName: 'Lageplan',
title: 'Lageplan Digitale Einsatzdokumentation für Feuerwehren',
description:
'Die moderne Krokier-App für Schweizer Feuerwehren. Einsatzpläne digital erstellen, Journal führen, Rapporte generieren.',
images: [
{
url: '/og-image.png',
width: 1200,
height: 630,
alt: 'Lageplan Feuerwehr Krokier-App',
},
],
},
twitter: {
card: 'summary_large_image',
title: 'Lageplan Digitale Einsatzdokumentation für Feuerwehren',
description:
'Die moderne Krokier-App für Schweizer Feuerwehren. Einsatzpläne digital erstellen, Journal führen, Rapporte generieren.',
images: ['/og-image.png'],
},
alternates: {
canonical: siteUrl,
},
icons: {
icon: '/logo.svg',
apple: '/logo.svg',
},
category: 'technology',
}
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
maximumScale: 1,
interactiveWidget: 'resizes-content',
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="de" suppressHydrationWarning>
<head>
<link rel="manifest" href="/manifest.json" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Lageplan" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="theme-color" content="#dc2626" />
</head>
<body className={`${inter.className} antialiased`} style={{ fontFeatureSettings: '"tnum", "cv01"' }}>
<AuthProvider>
<ServiceWorkerRegister />
{children}
<Toaster />
</AuthProvider>
</body>
</html>
)
}