@@ -10,9 +10,17 @@ import { EventsMap } from "./events-map"
1010import { EVENTS } from "./events-data"
1111import { PastSpeakersSection } from "./2026/components/past-speakers"
1212import { NavbarPlaceholder } from "./2026/components/navbar"
13- import fostLogo from "./2026/assets/fost-logo.svg "
13+ import fostLogo from "./2026/assets/fost-logo.avif "
1414import Image from "next/image"
1515
16+ const NUMBER_OF_CITIES_SPELLED_OUT = "four"
17+ if ( process . env . NODE_ENV === "development" ) {
18+ if ( EVENTS . length !== 4 )
19+ throw new Error (
20+ "EVENTS is expected to be 4, please update the NUMBER_OF_CITIES_SPELLED_OUT variable" ,
21+ )
22+ }
23+
1624export const metadata : Metadata = {
1725 title : "GraphQL Day 2026" ,
1826 description :
@@ -37,20 +45,31 @@ export default function DayIndexPage() {
3745 < div className = "pointer-events-none absolute inset-0 z-10 bg-gradient-to-t from-[--sea] to-transparent lg:bg-gradient-to-r lg:from-[--sea] lg:to-transparent lg:to-40%" />
3846 </ EventsMap >
3947 < div className = "gql-container pointer-events-none absolute inset-0 z-20 flex flex-col justify-end px-4 lg:justify-center lg:px-12 xl:px-24" >
40- < div className = "pointer-events-auto pb-8 pt-20 md:pb-12 lg:max-w-md lg:py-0 xl:max-w-2xl" >
48+ < div className = "pointer-events-auto flex h-full flex-col py-8 md:pb-12 lg:max-w-md xl:max-w-2xl" >
49+ < div className = "flex-1" />
4150 < h1 className = "typography-d1 mb-4 text-neu-900" > GraphQL Day</ h1 >
42- < p className = "typography-body-lg text-neu-700 dark:text-neu-400" >
43- Community-organized GraphQL events at FOST conferences
44- worldwide.
51+ < p className = "typography-body-lg text-balance text-neu-700 dark:text-neu-400" >
52+ Community-organized GraphQL events at conferences worldwide.
4553 </ p >
46- < a
47- href = "https://www.joinfost.io"
48- target = "_blank"
49- rel = "noopener noreferrer"
50- className = "mt-8"
51- >
52- < Image src = { fostLogo . src } alt = "FOST" width = { 120 } height = { 40 } />
53- </ a >
54+ < div className = "flex-1" />
55+ < div className = "mt-8 flex h-fit items-center gap-2" >
56+ < div className = "typography-body-sm text-neu-700 dark:text-neu-400" >
57+ hosted at
58+ </ div >
59+ < a
60+ href = "https://www.joinfost.io"
61+ target = "_blank"
62+ rel = "noopener noreferrer"
63+ >
64+ < Image
65+ src = { fostLogo }
66+ alt = "FOST"
67+ width = { 80 }
68+ height = { 24 }
69+ placeholder = "blur"
70+ />
71+ </ a >
72+ </ div >
5473 </ div >
5574 </ div >
5675 </ div >
@@ -59,10 +78,10 @@ export default function DayIndexPage() {
5978 < main className = "gql-container gql-section" >
6079 < h2 className = "typography-h2 my-6 md:mt-12" > GraphQL Days in 2026</ h2 >
6180 < p className = "typography-body-md text-neu-700 dark:text-neu-400" >
62- Started in Paris. Now in{ " " }
63- { Intl . NumberFormat ( "en-US" ) . format ( EVENTS . length ) } cities worldwide.
64- Whether you're deep in production or just getting started, this is
65- your chance to connect, share best practices, and see what's new.
81+ Started in Paris. Now in { NUMBER_OF_CITIES_SPELLED_OUT } cities
82+ worldwide. Whether you're deep in production or just getting started,
83+ this is your chance to connect, share best practices, and see what's
84+ new.
6685 </ p >
6786 < div className = "mt-8 flex flex-col gap-4" >
6887 { EVENTS . map ( event => (
0 commit comments