Skip to content

Commit ab35c26

Browse files
authoredJan 31, 2025··
feat: more conf 2025 resources (#1939)
* feat: more conf 2025 resources * update * add to nav * link * open external links in new tab * faq updates * venue updates * update faq
1 parent 2c8844a commit ab35c26

File tree

8 files changed

+270
-46
lines changed

8 files changed

+270
-46
lines changed
 

‎src/app/conf/2025/faq.tsx

+27-9
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ const FAQS = [
1616
{
1717
question: "Are there group discounts for teams?",
1818
answer:
19-
'If you have a group of 5 or more people, you can receive a 10% discount on all passes. All pass types must be the same, and all registrations must be processed under one group registration and must be paid with the same credit card. To create a group, select “Add Another Person” to your registration. When 5 or more people are added the 10% discount will be automatically applied. <a href="mailto:registration@linuxfoundation.org">Contact us</a> for any questions.',
19+
'If you have a group of 5 or more people, you can receive a 10% discount on all passes. All pass types must be the same, and all registrations must be processed under one group registration and must be paid with the same credit card. To create a group, select “Add Another Person” to your registration. When 5 or more people are added the 10% discount will be automatically applied. <a href="mailto:registration@linuxfoundation.org">registration@linuxfoundation.org</a> for any questions.',
2020
},
2121
{
2222
question: "What is the refund and cancellation policy?",
23-
answer: `If you must cancel for any reason, please sign back into your registration, click the “Register/Modify” button and select “Unregister.” If you need further assistance, <a href="mailto:registration@linuxfoundation.org">contact us</a>.<br/><br/>Refunds will only be issued for cancellations received two weeks prior to the event start date, including bulk ticket request refunds, and will appear as a credit on the card's statement 7-10 business days after cancellation. Individual refund requests for late cancellations due to sickness or emergency will be considered on a case by case basis - <a href="mailto:registration@linuxfoundation.org">contact us</a>.<br/><br/>Refunds can only be issued on the card the original payment was made.`,
23+
answer: `If you must cancel for any reason, please sign back into your registration, click the “Register/Modify” button and select “Unregister.” If you need further assistance, please contact <a href="mailto:registration@linuxfoundation.org">registration@linuxfoundation.org</a>.<br/><br/>Refunds will only be issued for cancellations received two weeks prior to the event start date, including bulk ticket request refunds, and will appear as a credit on the card's statement 7-10 business days after cancellation. Individual refund requests for late cancellations due to sickness or emergency will be considered on a case by case basis - <a href="mailto:registration@linuxfoundation.org">registration@linuxfoundation.org</a>.<br/><br/>Refunds can only be issued on the card the original payment was made.`,
2424
},
2525
{
2626
question: "Can I transfer my registration?",
@@ -29,13 +29,30 @@ const FAQS = [
2929
},
3030
{
3131
question: "Can I get certificate of attendance?",
32+
answer: `You can download your Certificate of Attendance directly from your <a target="_blank" href="https://openprofile.dev/myevents">LFX dashboard</a> by navigating to the "Past Events" section in the LF Events column. Please Note: We verify attendance through the registration system, and certificates will only be available for download after the event is completed.`,
33+
},
34+
{
35+
question: "How do I request a visa letter?",
36+
answer: `You must be registered for the event before requesting a visa letter. Please note: it can take up to an hour for our registration system and visa letter system to sync. <a target="_blank" href="https://events.linuxfoundation.org/about/visa-request/">Request a visa letter</a>.`,
37+
},
38+
{
39+
question: "Where can I find health and safety information for the event?",
3240
answer:
33-
'To request a Certificate of Attendance, please submit a request <a target="blank" href="https://docs.google.com/forms/d/1RpI8h6AGK2rCl3aIlyEY0D6fU3tsZ5yr1Ba6c3h6p9Y/viewform?edit_requested=true">here</a>. Please Note: We verify attendance through the registration system, and Certificate of Attendance letters are sent out after the event is completed.',
41+
'Your well-being is our top priority. We continuously update our health and safety guidelines based on local regulations. Information about food allergies, medical resources, emergency contacts, and safety services can be found on <a href="/conf/2025/resources#onsite-resources">this</a> page.',
42+
},
43+
{
44+
question: "What accessibility and onsite resources are available?",
45+
answer:
46+
'We are committed to providing a comfortable and accessible experience for all attendees. Onsite resources include a private nursing room, venue accessibility support, reserved seating, a quiet room, communication and pronoun stickers, all-gender restrooms, first aid assistance, and a process for handling harassment reports. For full details on these resources, please visit <a href="/conf/2025/resources#health--safety">this</a> page.',
47+
},
48+
{
49+
question: "Looking for more?",
50+
answer: "Checkout our <a href='/conf/2025/resources'>Resources</a> page.",
3451
},
3552
{
3653
question: "Cannot find the answer to your question?",
3754
answer:
38-
'You are welcome to email us <a href="mailto:graphqlconf@graphql.org">graphqlconf@graphql.org</a>.',
55+
'You are welcome to email us <a href="mailto:graphql_events@linuxfoundation.org ">graphql_events@linuxfoundation.org</a>.',
3956
},
4057
]
4158

@@ -50,13 +67,14 @@ export function FAQ() {
5067
Asked Questions
5168
</h2>
5269
<p className="select-none text-sm">
53-
PLEASE CONTACT{" "}
70+
You can find much more information on our{" "}
5471
<a
55-
href="mailto:graphqlconf@graphql.org"
56-
className="select-text uppercase text-primary hover:underline"
72+
href="/conf/2025/resources"
73+
className="select-text text-primary hover:underline"
5774
>
58-
graphqlconf@graphql.org
59-
</a>
75+
Resources
76+
</a>{" "}
77+
page.
6078
</p>
6179
</div>
6280

‎src/app/conf/2025/layout.tsx

+25-9
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ import { Header } from "../_components/header"
44
import { Footer } from "../_components/footer"
55
import { GraphQLConf, HostedByGraphQLFoundation } from "@/icons"
66
import NextLink from "next/link"
7+
import { Rubik } from "next/font/google"
8+
9+
const rubik = Rubik({
10+
weight: ["700", "600", "500", "400", "300"],
11+
subsets: ["latin"],
12+
})
713

814
export const metadata = {
915
description:
@@ -41,15 +47,22 @@ export default function Layout({
4147
</NextLink>
4248
}
4349
links={[
44-
{ children: "Sponsor", href: "#sponsors" },
45-
{ children: "Speakers", href: "#speakers" },
46-
{ children: "Register", href: "#register" },
50+
{ children: "Sponsor", href: "/conf/2025/#sponsors" },
51+
{ children: "Speakers", href: "/conf/2025/#speakers" },
52+
{ children: "Register", href: "/conf/2025/#register" },
4753
{ children: "Recap", href: "/conf/2024" },
48-
{ children: "FAQ", href: "#faq" },
54+
{ children: "Resources", href: "/conf/2025/resources" },
55+
{ children: "FAQ", href: "/conf/2025/#faq" },
4956
]}
5057
is2025
5158
/>
52-
{children}
59+
<div
60+
style={{
61+
fontFamily: rubik.style.fontFamily,
62+
}}
63+
>
64+
{children}
65+
</div>
5366
<Footer
5467
logo={
5568
<NextLink href="/conf/2025" className="nextra-logo text-white">
@@ -62,8 +75,8 @@ export default function Layout({
6275
}
6376
links={[
6477
[
65-
{ children: "Sponsor", href: "#sponsors" },
66-
{ children: "Speakers", href: "#speakers" },
78+
{ children: "Sponsor", href: "/conf/2025/#sponsors" },
79+
{ children: "Speakers", href: "/#speakers" },
6780
{ children: "GraphQLConf 2024", href: "/conf/2024" },
6881
],
6982
[
@@ -75,9 +88,12 @@ export default function Layout({
7588
{ children: "GraphQL Foundation", href: "/foundation" },
7689
{
7790
children: "Code of Conduct",
78-
href: "/conf/2025/faq/#codeofconduct",
91+
href: "/conf/2025/resources/#code-of-conduct",
92+
},
93+
{
94+
children: "Diversity & Inclusion",
95+
href: "/conf/2025/resources/#diversity--inclusion",
7996
},
80-
{ children: "Diversity & Inclusion", href: "/conf/2025/faq/#dni" },
8197
],
8298
]}
8399
/>

‎src/app/conf/2025/page.tsx

+1-12
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
import { Metadata } from "next"
22
import { HostedByGraphQLFoundation } from "@/icons"
3-
import { Rubik } from "next/font/google"
43
import { GridButton } from "../_components/grid-button"
54
import { Sponsor } from "./sponsorship"
65
import { Venue } from "./venue"
76
import { FAQ } from "./faq"
87
import { Register } from "./register"
98
import { PastSponsors } from "./past-sponsors"
109

11-
const rubik = Rubik({
12-
weight: ["700", "600", "500", "400", "300"],
13-
subsets: ["latin"],
14-
})
15-
1610
export const metadata: Metadata = {
1711
title: "GraphQLConf 2025 — Sept 08-10",
1812
}
@@ -63,12 +57,7 @@ function Intro() {
6357

6458
export default function Page() {
6559
return (
66-
<main
67-
style={{
68-
fontFamily: rubik.style.fontFamily,
69-
}}
70-
className="text-white"
71-
>
60+
<main className="text-white">
7261
<Hero />
7362
<div className="container my-20 flex flex-col gap-20 md:my-32 md:gap-32">
7463
<Intro />

‎src/app/conf/2025/register.tsx

+31-12
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,8 @@ export function Register() {
66
<InfoGrid
77
id="register"
88
title="Register"
9-
subtitle="Join a diverse community of GraphQL developers, architects, and enthusiasts while experiencing premium content and networking opportunities in a vendor-neutral environment."
9+
subtitle="Join a diverse community of GraphQL developers, architects, and enthusiasts while experiencing premium content and networking opportunities in a vendor-neutral environment. We never sell attendee lists or contact information, nor do we authorize others to do so. If you receive an email claiming to sell an attendee list for a Linux Foundation event, please forward it to events@linuxfoundation.org."
1010
listItems={[
11-
{
12-
title: "Corporate",
13-
description:
14-
"The Corporate Registration type is for registrants whose company is paying for their attendance. This includes for-profit companies. You will help keep the conference affordable for everyone, especially students and those needing financial aid.",
15-
},
16-
{
17-
title: "Individuals",
18-
description:
19-
"The Individual Registration type is for registrants who are currently not working for a company, work for a non-profit or research institution or are attending at their own expense. You will receive confirmation within five business days of registering if your individual registration is approved or needs additional information.",
20-
},
2111
{
2212
title: "Academics",
2313
description: `Academics registrations are for current full-time students and faculty members. Full-time faculty and students will need to upload a valid copy of their Faculty or Student ID when registering. If you have any questions, please email <a href="mailto:graphql_events@linuxfoundation.org">graphql_events@linuxfoundation.org</a>`,
@@ -28,11 +18,40 @@ export function Register() {
2818
},
2919
{
3020
title: "Sponsors",
31-
description: `A registration link was shared in an email to your company's sponsorship contact. Please reach out to your company’s sponsorship contact if you need to register as a Sponsor. For further questions, please email <a href="mailto:events@linuxfoundation.org.">events@linuxfoundation.org.</a>`,
21+
description: `A registration link was shared in an email to your company's sponsorship contact. Please reach out to your company’s sponsorship contact if you need to register as a Sponsor. For further questions, please email <a href="mailto:graphql_events@linuxfoundation.org">graphql_events@linuxfoundation.org</a>.`,
22+
},
23+
{
24+
title: "Media",
25+
description: `If you are a member of the media interested in attending this event and have not received a complimentary access code to attend, contact us at <a href="mailto:graphql_events@linuxfoundation.org">graphql_events@linuxfoundation.org</a>.`,
3226
},
3327
]}
3428
/>
3529

30+
<div className="mt-10">
31+
<h2 className="mb-4 text-5xl font-bold text-white">Rates</h2>
32+
<p>The registraion deadlines is 23:59 on the respective date.</p>
33+
<div className="mt-8 grid gap-6 md:grid-cols-3 md:gap-2">
34+
{[
35+
{ title: "Early Bird", dates: "Through 13 July", price: "$599" },
36+
{ title: "Standard", dates: "14 July - 31 August", price: "$799" },
37+
{
38+
title: "Late",
39+
dates: "1 September - 10 September",
40+
price: "$899",
41+
},
42+
].map((item, index) => (
43+
<div
44+
key={item.title}
45+
className="w-full flex-shrink-0 snap-start items-center justify-center border border-primary p-6 text-center text-white shadow-lg lg:w-full lg:max-w-sm"
46+
>
47+
<h3 className="mb-2 text-2xl font-bold">{item.title}</h3>
48+
<time>{item.dates}</time>
49+
<p className="mt-2 text-3xl font-bold">{item.price}</p>
50+
</div>
51+
))}
52+
</div>
53+
</div>
54+
3655
<div className="mt-8 flex justify-center">
3756
<a
3857
href="https://cvent.me/PBNYEe?utm_source=graphql_conf_2025&utm_medium=website&utm_campaign=register_section"
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"use client"
2+
3+
import Resources from "./resources.mdx"
4+
5+
export default function ResourcesPage() {
6+
return (
7+
<Resources
8+
components={{
9+
// @ts-expect-error - not sure how to type this
10+
a: props => {
11+
const isExternal = props.href.startsWith("http")
12+
if (isExternal) {
13+
return <a {...props} target="_blank" rel="noopener noreferrer" />
14+
}
15+
16+
return <a {...props} />
17+
},
18+
}}
19+
/>
20+
)
21+
}

‎src/app/conf/2025/resources/page.tsx

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import Resources from "./client-mdx"
2+
3+
import { clsx } from "clsx"
4+
import { Metadata } from "next"
5+
6+
export const metadata: Metadata = {
7+
title: "Resources | 2025",
8+
}
9+
10+
export default function ResourcesPage() {
11+
return (
12+
<main>
13+
<div
14+
className={clsx(
15+
"container my-10 flex flex-col md:my-20",
16+
"prose max-w-screen-xl",
17+
"text-white prose-headings:text-white prose-a:text-white prose-strong:text-white",
18+
"prose-a:w-fit prose-a:transition-colors hover:prose-a:text-primary",
19+
)}
20+
>
21+
<Resources />
22+
</div>
23+
</main>
24+
)
25+
}
+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# GraphQLConf 2025 Resource Hub
2+
3+
<div className="mt-6 grid grid-cols-2 gap-x-4">{toc.map(({value, id}) => <a key={id} href={`#${id}`}>{value}</a>)}</div>
4+
5+
## Code of Conduct
6+
7+
The GraphQL Foundation and the Linux Foundation are dedicated to providing a harassment-free experience for participants at all of our events, whether they are held in person or virtually. GraphQLConf is a working conference intended for professional networking and collaboration within the open source community. It exists to encourage the open exchange of ideas and expression and requires an environment that recognizes the inherent worth of every person and group. While at GraphQLConf or related ancillary or social events, any participants, including members, speakers, attendees, volunteers, sponsors, exhibitors, booth staff and anyone else, should not engage in harassment in any form.
8+
9+
This Code of Conduct may be revised at any time by The GraphQL Foundation or The Linux Foundation and the terms are non-negotiable. Your registration for or attendance at GraphQL, whether in person or virtually, indicates your agreement to abide by this policy and its terms.
10+
11+
Please read the full [Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct/) for the complete policy and terms.
12+
13+
## Diversity & Inclusion
14+
15+
Education and collaboration are vital to the future of the open source ecosystem, and it is imperative to us that everyone in the community that wants to participate feels welcome to do so regardless of gender, gender identity, sexual orientation, disability, race, ethnicity, age, religion or economic status. Our [code of conduct](#code-of-conduct) outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
16+
17+
We offer diversity and have considered a broad range of both onsite resources and emergency resources as well as a health & safety policy.
18+
19+
If you have ideas on how we can create a more inclusive event, please do not hesitate to let us know. Contact Emily Ruf, Event Director, at [eruf@linuxfoundation.org](mailto:eruf@linuxfoundation.org).
20+
21+
## Health & Safety
22+
23+
Check this page for updates about health and safety recommendations.
24+
25+
Our community's well-being is extremely important to us, and creating a safe, worry-free event is our top priority. We will adjust our health and safety protocols as needed while updating this page with information about plans for our attendees onsite. We continue to look to local municipality guidelines to make the best and most informed decisions around onsite safety and requirements. All in-person attendance requirements are subject to change based on local guidelines.
26+
27+
### Food Allergies
28+
29+
The Linux Foundation believes it's essential to prioritize the safety and well-being of all attendees, including those with food allergies.
30+
31+
- We aim to provide a variety of choices to cater to various needs such as vegetarian, vegan, gluten-free, dairy-free, and peanut-free.
32+
- All food items will be clearly labeled at the event, indicating the ingredients used and any potential allergens present.
33+
34+
If you have a food allergy we need to be aware of, please email us at [graphql_events@linuxfoundation.org](mailto:graphql_events@linuxfoundation.org).
35+
36+
### Medical Resources
37+
38+
**In an emergency, always dial 112**
39+
40+
**Hospital**
41+
Amsterdam UMC – Locatie VUmc
42+
De Boelelaan 1117, 1118, 1081 HV Amsterdam
43+
\+31 (0)20 444 4444
44+
45+
**Pharmacy**
46+
[Amsterdam Central Pharmacy](http://www.amsterdamcentralpharmacy.com/)
47+
\+31 20 235 7822
48+
De Ruijterkade 24, A,
49+
1012 AA Amsterdam, Netherlands
50+
51+
**Taxi**
52+
TCA Taxicentrale Amsterdam
53+
\+31 020-777-7777
54+
[https://www.tcataxi.nl/](http://www.tcataxi.nl/)
55+
56+
### Safety & Trauma Resources
57+
58+
**Police**
59+
Police Station Amsterdam-West
60+
Houtmankade 34
61+
1013 MX Amsterdam, Netherlands
62+
63+
**Sexual Assault Hotline**
64+
Centre Sexual Violence
65+
24 hours a day
66+
\+31(0)88 7555588
67+
68+
## Onsite Resources
69+
70+
### Nursing Room
71+
72+
We will be providing a private nursing room to aid in the comfort and accessibility of our nursing attendees. The room will be available all days of the event and will be located onsite. For location information, please check with registration or information desk staff onsite.
73+
74+
### Venue Accessibility
75+
76+
If you need any assistance locating an elevator, or have other questions about accessibility onsite, please speak to a member of the Linux Foundation event staff at any of the registration or information desks onsite. If you have questions prior to the event, please contact Event Support.
77+
78+
### Reserved Seating
79+
80+
Reserved seating is available in each session for those who have accessibility needs. If you need assistance onsite, please ask a staff member.
81+
82+
### Quiet Room
83+
84+
This is a physical space where attendees can go if they feel unable to interact with other attendees for a period of time. Please refrain from conversation, interaction, or work in these spaces.
85+
86+
### Communication Stickers
87+
88+
Attendees can pick up communication stickers to add to their badges at registration. Communication stickers indicate an attendee's requested level of interaction with other attendees and press (including photographers and videographers).
89+
90+
Green \= Open to communicate.
91+
Yellow \= Only if you know me, please.
92+
Red \= I'm not interested in communicating (or being videotaped or photographed) at this time.
93+
94+
Please be respectful of attendee communication preferences.
95+
96+
### Share your Pronouns
97+
98+
Stickers will be available at registration to add to your badge. Please be respectful of attendees’ pronouns.
99+
100+
### All-Gender Restrooms
101+
102+
We will designate specific restrooms as all-gender for attendees who feel more comfortable using those facilities.
103+
104+
### First Aid/Medical Assistance
105+
106+
If you require first aid or medical assistance, please visit our registration desk or a venue information desk. For emergencies, please dial 112\.
107+
108+
### How to Handle a Harassment Report
109+
110+
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of the event staff immediately. Event staff can be identified by staff badges and/or shirts onsite and can be found at the event registration counter at any time. Our staff has had incident response training, responds to harassment reports and does so in accordance with the process recommended by the Ada Initiative, which can be found [here](https://geekfeminism.wikia.org/wiki/Conference_anti-harassment/Responding_to_reports) on the Geek Feminism Wiki.
111+
112+
Conference staff will be happy to help participants contact hotel/venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the conference.
113+
114+
If you are planning to attend an upcoming event and have concerns regarding another individual who may be present, please reach out to us pre-event. Precautions will be taken to ensure a victim’s comfort and safety, including, but not limited to providing an escort, prepping onsite event staff, keeping victim and harasser from attending the same talks/social events and providing onsite contact cell phone numbers for immediate contact.
115+
116+
### The Linux Foundation Contacts
117+
118+
Emily Ruf, Event Director, [eruf@linuxfoundation.org](mailto:eruf@linuxfoundation.org)
119+
Angela Brown, SVP & General Manager of Events, \+1-575-694-2263, [angela@linuxfoundation.org](mailto:angela@linuxfoundation.org)
120+
121+
## Contact Us
122+
123+
If you cannot find the answer to your question, you are welcome to contact us by emailing [graphql_events@linuxfoundation.org](mailto:graphql_events@linuxfoundation.org).

‎src/app/conf/2025/venue.tsx

+17-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
SquareParking,
55
TicketsPlane,
66
} from "lucide-react"
7+
import Link from "next/link"
78

89
const HOTELS = [
910
{
@@ -38,8 +39,7 @@ const HOW_TO_GET_TO_VENUE = [
3839
},
3940
{
4041
title: "Parking at venue",
41-
description:
42-
"Limited parking is available at the venue. We recommend using public transportation when possible.",
42+
description: `Limited parking is available at the venue. We recommend using public transportation when possible. Learn more about parking at <a class="hover:text-primary underline" href="https://dezwijger.nl/about-us-en/contact" target="_blank">Pakhuis de Zwijger</a>. If you require an accessible parking spot, park at Vriesseveem 4 or Withoedenveem 16 where you can park if you have a Disability Parking Card.`,
4343
icon: <SquareParking size={20} />,
4444
},
4545
]
@@ -52,7 +52,15 @@ export function Venue() {
5252
<div className="flex flex-col gap-2">
5353
<h2 className="text-3xl">Conference</h2>
5454
<address className="not-italic">
55-
<strong>Pakhuis De Zwijger</strong>
55+
<strong>
56+
<Link
57+
className="underline hover:text-primary"
58+
target="_blank"
59+
href="https://dezwijger.nl/"
60+
>
61+
Pakhuis De Zwijger
62+
</Link>
63+
</strong>
5664
<br /> Piet Heinkade 179, 1019 HC <br />
5765
Amsterdam, Netherlands
5866
</address>
@@ -66,7 +74,12 @@ export function Venue() {
6674
{icon}
6775
<h5 className="text-lg">{title}</h5>
6876
</div>
69-
<p className="ml-9 max-w-96">{description}</p>
77+
<p
78+
className="ml-9 max-w-96"
79+
dangerouslySetInnerHTML={{
80+
__html: description,
81+
}}
82+
/>
7083
</div>
7184
))}
7285
</div>

0 commit comments

Comments
 (0)
Please sign in to comment.