-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathlayout.tsx
More file actions
85 lines (81 loc) · 2.32 KB
/
layout.tsx
File metadata and controls
85 lines (81 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import type { Metadata } from "next";
import { Roboto_Mono } from "next/font/google";
import "./globals.css";
import { PostHogProvider } from "@/app/providers";
import Footer from "@/components/footer";
import NavBar from "@/components/nav-bar";
const robotoMono = Roboto_Mono({
weight: "400",
subsets: ["latin"],
});
const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "https://pycon.ke";
export const metadata: Metadata = {
title: "Welcome to PyCon Kenya 2026",
description: "Africa's largest Python conference, held in Nairobi, Kenya.",
authors: [
{
name: "Rodney Osodo",
url: "https://rodneyosodo.com",
},
],
keywords: [
"Python",
"Conference",
"Africa",
"Nairobi",
"Kenya",
"Developer",
"Community",
],
openGraph: {
type: "website",
title: "Welcome to PyCon Kenya 2026",
description:
"Africa's largest Python conference, held in Nairobi, Kenya. Join us for a weekend of inspiring talks, informative workshops, and fun networking events.",
url: baseUrl,
siteName: "PyConKE 2026",
images: [
{
url: `${baseUrl}/opengraph-image.png`,
secureUrl: `${baseUrl}/opengraph-image.png`,
alt: "PyConKE 2026",
type: "image/png",
width: 1200,
height: 630,
},
],
},
twitter: {
card: "summary_large_image",
title: "Welcome to PyCon Kenya 2026",
description:
"Africa's largest Python conference, held in Nairobi, Kenya. Join us for a weekend of inspiring talks, informative workshops, and fun networking events.",
images: [
{
url: `${baseUrl}/opengraph-image.png`,
secureUrl: `${baseUrl}/opengraph-image.png`,
alt: "PyConKE 2026",
type: "image/png",
width: 1200,
height: 630,
},
],
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body className={`${robotoMono.className} antialiased`}>
<div className="absolute inset-0 -z-10 h-full w-full bg-white bg-[linear-gradient(to_right,#8080800a_1px,transparent_1px),linear-gradient(to_bottom,#8080800a_1px,transparent_1px)] bg-[size:14px_24px]">
<NavBar />
<PostHogProvider>{children}</PostHogProvider>
<Footer />
</div>
</body>
</html>
);
}