Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: more conf 2025 resources #1939

Merged
merged 9 commits into from
Jan 31, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 27 additions & 9 deletions src/app/conf/2025/faq.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ const FAQS = [
{
question: "Are there group discounts for teams?",
answer:
'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:[email protected]">Contact us</a> for any questions.',
'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:[email protected]">[email protected]</a> for any questions.',
},
{
question: "What is the refund and cancellation policy?",
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:[email protected]">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:[email protected]">contact us</a>.<br/><br/>Refunds can only be issued on the card the original payment was made.`,
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:[email protected]">[email protected]</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:[email protected]">[email protected]</a>.<br/><br/>Refunds can only be issued on the card the original payment was made.`,
},
{
question: "Can I transfer my registration?",
Expand All @@ -29,13 +29,30 @@ const FAQS = [
},
{
question: "Can I get certificate of attendance?",
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.`,
},
{
question: "How do I request a visa letter?",
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>.`,
},
{
question: "Where can I find health and safety information for the event?",
answer:
'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.',
'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.',
},
{
question: "What accessibility and onsite resources are available?",
answer:
'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.',
},
{
question: "Looking for more?",
answer: "Checkout our <a href='/conf/2025/resources'>Resources</a> page.",
},
{
question: "Cannot find the answer to your question?",
answer:
'You are welcome to email us <a href="mailto:graphqlconf@graphql.org">graphqlconf@graphql.org</a>.',
'You are welcome to email us <a href="mailto:graphql_events@linuxfoundation.org ">graphql_events@linuxfoundation.org</a>.',
},
]

Expand All @@ -50,13 +67,14 @@ export function FAQ() {
Asked Questions
</h2>
<p className="select-none text-sm">
PLEASE CONTACT{" "}
You can find much more information on our{" "}
<a
href="mailto:[email protected]"
className="select-text uppercase text-primary hover:underline"
href="/conf/2025/resources"
className="select-text text-primary hover:underline"
>
[email protected]
</a>
Resources
</a>{" "}
page.
</p>
</div>

Expand Down
34 changes: 25 additions & 9 deletions src/app/conf/2025/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ import { Header } from "../_components/header"
import { Footer } from "../_components/footer"
import { GraphQLConf, HostedByGraphQLFoundation } from "@/icons"
import NextLink from "next/link"
import { Rubik } from "next/font/google"

const rubik = Rubik({
weight: ["700", "600", "500", "400", "300"],
subsets: ["latin"],
})

export const metadata = {
description:
Expand Down Expand Up @@ -41,15 +47,22 @@ export default function Layout({
</NextLink>
}
links={[
{ children: "Sponsor", href: "#sponsors" },
{ children: "Speakers", href: "#speakers" },
{ children: "Register", href: "#register" },
{ children: "Sponsor", href: "/conf/2025/#sponsors" },
{ children: "Speakers", href: "/conf/2025/#speakers" },
{ children: "Register", href: "/conf/2025/#register" },
{ children: "Recap", href: "/conf/2024" },
{ children: "FAQ", href: "#faq" },
{ children: "Resources", href: "/conf/2025/resources" },
{ children: "FAQ", href: "/conf/2025/#faq" },
]}
is2025
/>
{children}
<div
style={{
fontFamily: rubik.style.fontFamily,
}}
>
{children}
</div>
<Footer
logo={
<NextLink href="/conf/2025" className="nextra-logo text-white">
Expand All @@ -62,8 +75,8 @@ export default function Layout({
}
links={[
[
{ children: "Sponsor", href: "#sponsors" },
{ children: "Speakers", href: "#speakers" },
{ children: "Sponsor", href: "/conf/2025/#sponsors" },
{ children: "Speakers", href: "/#speakers" },
{ children: "GraphQLConf 2024", href: "/conf/2024" },
],
[
Expand All @@ -75,9 +88,12 @@ export default function Layout({
{ children: "GraphQL Foundation", href: "/foundation" },
{
children: "Code of Conduct",
href: "/conf/2025/faq/#codeofconduct",
href: "/conf/2025/resources/#code-of-conduct",
},
{
children: "Diversity & Inclusion",
href: "/conf/2025/resources/#diversity--inclusion",
},
{ children: "Diversity & Inclusion", href: "/conf/2025/faq/#dni" },
],
]}
/>
Expand Down
13 changes: 1 addition & 12 deletions src/app/conf/2025/page.tsx
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import { Metadata } from "next"
import { HostedByGraphQLFoundation } from "@/icons"
import { Rubik } from "next/font/google"
import { GridButton } from "../_components/grid-button"
import { Sponsor } from "./sponsorship"
import { Venue } from "./venue"
import { FAQ } from "./faq"
import { Register } from "./register"
import { PastSponsors } from "./past-sponsors"

const rubik = Rubik({
weight: ["700", "600", "500", "400", "300"],
subsets: ["latin"],
})

export const metadata: Metadata = {
title: "GraphQLConf 2025 — Sept 08-10",
}
Expand Down Expand Up @@ -63,12 +57,7 @@ function Intro() {

export default function Page() {
return (
<main
style={{
fontFamily: rubik.style.fontFamily,
}}
className="text-white"
>
<main className="text-white">
<Hero />
<div className="container my-20 flex flex-col gap-20 md:my-32 md:gap-32">
<Intro />
Expand Down
43 changes: 31 additions & 12 deletions src/app/conf/2025/register.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,8 @@ export function Register() {
<InfoGrid
id="register"
title="Register"
subtitle="Join a diverse community of GraphQL developers, architects, and enthusiasts while experiencing premium content and networking opportunities in a vendor-neutral environment."
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 [email protected]."
listItems={[
{
title: "Corporate",
description:
"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.",
},
{
title: "Individuals",
description:
"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.",
},
{
title: "Academics",
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:[email protected]">[email protected]</a>`,
Expand All @@ -28,11 +18,40 @@ export function Register() {
},
{
title: "Sponsors",
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:[email protected].">[email protected].</a>`,
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:[email protected]">[email protected]</a>.`,
},
{
title: "Media",
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:[email protected]">[email protected]</a>.`,
},
]}
/>

<div className="mt-10">
<h2 className="mb-4 text-5xl font-bold text-white">Rates</h2>
<p>The registraion deadlines is 23:59 on the respective date.</p>
<div className="mt-8 grid gap-6 md:grid-cols-3 md:gap-2">
{[
{ title: "Early Bird", dates: "Through 13 July", price: "$599" },
{ title: "Standard", dates: "14 July - 31 August", price: "$799" },
{
title: "Late",
dates: "1 September - 10 September",
price: "$899",
},
].map((item, index) => (
<div
key={item.title}
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"
>
<h3 className="mb-2 text-2xl font-bold">{item.title}</h3>
<time>{item.dates}</time>
<p className="mt-2 text-3xl font-bold">{item.price}</p>
</div>
))}
</div>
</div>

<div className="mt-8 flex justify-center">
<a
href="https://cvent.me/PBNYEe?utm_source=graphql_conf_2025&utm_medium=website&utm_campaign=register_section"
Expand Down
21 changes: 21 additions & 0 deletions src/app/conf/2025/resources/client-mdx.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"use client"

import Resources from "./resources.mdx"

export default function ResourcesPage() {
return (
<Resources
components={{
// @ts-expect-error - not sure how to type this
a: props => {
const isExternal = props.href.startsWith("http")
if (isExternal) {
return <a {...props} target="_blank" rel="noopener noreferrer" />
}

return <a {...props} />
},
}}
/>
)
}
25 changes: 25 additions & 0 deletions src/app/conf/2025/resources/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Resources from "./client-mdx"

import { clsx } from "clsx"
import { Metadata } from "next"

export const metadata: Metadata = {
title: "Resources | 2025",
}

export default function ResourcesPage() {
return (
<main>
<div
className={clsx(
"container my-10 flex flex-col md:my-20",
"prose max-w-screen-xl",
"text-white prose-headings:text-white prose-a:text-white prose-strong:text-white",
"prose-a:w-fit prose-a:transition-colors hover:prose-a:text-primary",
)}
>
<Resources />
</div>
</main>
)
}
Loading