import type { ReactNode } from 'react' import { getGitHubStars } from '@/lib/github/stars' import { Footer } from '@/app/(landing)/components/footer/footer' import { Navbar } from '@/app/(landing)/components/navbar/navbar' import { SiteStructuredData } from '@/app/(landing)/components/site-structured-data' /** * The shared chrome every landing-family page wears - the home page, every * platform page (Workflows, Tables, Files, …), and every solutions page (IT, * Engineering, …). It is the single source of truth for the page frame, so each * page is just `{content}` and can never drift. * * It owns: * - The `light` wrapper, which pins every `var(--*)` design token to its * light-mode value regardless of the visitor's theme - the landing family is * always light, and uses the platform's own light-mode tokens (from * `globals.css`) with no separate palette. * - The page's scroll port (`h-screen` + `overflow-y-auto` + * `overscroll-y-none`): the document body no longer overflows, so the viewport * can't rubber-band, and the container's own overscroll bounce is disabled - * without this the sticky navbar gets dragged past the top/bottom edges. * - The skip link (targets `#main-content`), the {@link Navbar} (GitHub stars * fetched here at build/revalidate time - never client-fetched), and the * {@link Footer}. * * The page supplies only the `
` content between the * navbar and footer. Async Server Component; pages render it with zero props. */ interface LandingShellProps { /** The page's `
` region - the only content the shell wraps. */ children: ReactNode } export async function LandingShell({ children }: LandingShellProps) { const stars = await getGitHubStars() return (
Skip to main content {children}
) }