a programming education platform
www.hypercommit.com
education
1import type { Metadata } from "next"
2import { Geist, Geist_Mono } from "next/font/google"
3
4import "@workspace/ui/globals.css"
5import { ThemeProvider } from "@/components/theme-provider"
6import { cn } from "@workspace/ui/lib/utils"
7
8export const metadata: Metadata = {
9 metadataBase: new URL("https://www.hypercommit.com"),
10 title: {
11 default: "Hypercommit",
12 template: "%s - Hypercommit",
13 },
14 description: "Level up as a software engineer.",
15 applicationName: "Hypercommit",
16 authors: [{ name: "Alexis Bouchez" }],
17 creator: "Alexis Bouchez",
18 publisher: "Alexis Bouchez",
19 openGraph: {
20 title: "Hypercommit",
21 description: "Level up as a software engineer.",
22 siteName: "Hypercommit",
23 type: "website",
24 locale: "en_US",
25 images: [
26 {
27 url: "/api/og/og-31",
28 width: 1200,
29 height: 630,
30 alt: "Hypercommit",
31 },
32 ],
33 },
34 twitter: {
35 card: "summary_large_image",
36 title: "Hypercommit",
37 description: "Level up as a software engineer.",
38 images: ["/api/og/og-31"],
39 },
40}
41
42const geist = Geist({ subsets: ["latin"], variable: "--font-sans" })
43
44const fontMono = Geist_Mono({
45 subsets: ["latin"],
46 variable: "--font-mono",
47})
48
49export default function RootLayout({
50 children,
51}: Readonly<{
52 children: React.ReactNode
53}>) {
54 return (
55 <html
56 lang="en"
57 suppressHydrationWarning
58 className={cn(
59 "antialiased",
60 fontMono.variable,
61 "font-sans",
62 geist.variable
63 )}
64 >
65 <body>
66 <ThemeProvider>{children}</ThemeProvider>
67 </body>
68 </html>
69 )
70}