From 651f75627bb8b0b297cdf0f6cfa2b5a14e3a40e5 Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Wed, 1 Jul 2026 17:09:23 +0200 Subject: [PATCH 1/6] Add a team page --- src/app/(main)/community/team/page.tsx | 379 +++++++++++++++++++++++++ src/pages/_meta.tsx | 5 + src/pages/community/_meta.ts | 4 + 3 files changed, 388 insertions(+) create mode 100644 src/app/(main)/community/team/page.tsx diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx new file mode 100644 index 0000000000..ad390fdf2e --- /dev/null +++ b/src/app/(main)/community/team/page.tsx @@ -0,0 +1,379 @@ +import dynamic from "next/dynamic" + +import { Breadcrumbs } from "@/_design-system/breadcrumbs" +import { NavbarFixed } from "@/components/navbar/navbar-fixed" +import { TocHero, TocHeroContents } from "@/components/toc-hero" +import blurBean from "@/app/(main)/community/events/events-blur-bean.webp" +import { StripesDecoration } from "@/app/conf/_design-system/stripes-decoration.tsx" + +interface Member { + name?: string + github: string + alumni?: boolean +} + +interface TeamSection { + title: string + description: string + url?: string + members: Member[] + alumniMembers?: Member[] +} + +function MemberCard({ member, small }: { member: Member; small?: boolean }) { + return ( + + {member.name + + {member.name ?? member.github} + + + ) +} + +function MemberGrid({ + members, + label, + small, +}: { + members: Member[] + label?: string + small?: boolean +}) { + if (!members.length) return null + return ( +
+ {label && ( +

+ {label} +

+ )} +
+ {members.map(m => ( + + ))} +
+
+ ) +} + +function ListOfSectionLists({ + sections, +}: { + sections: Record +}) { + return Object.entries(sections).map(([group, groupSections]) => ( +
+

{group}

+ +
+ )) +} + +function SectionList({ + sections, + archived, +}: { + sections: TeamSection[] + archived: boolean +}) { + { + return sections.map(section => ( +
+
+
+

+ {section.url ? ( + + {section.title} + + ) : ( + section.title + )} + {archived && (Archived)} +

+

+ {section.description} +

+
+
+ + + {section.alumniMembers && section.alumniMembers.length > 0 && ( + + )} +
+ )) + } +} + +const sections: Record = { + Standards: [ + { + title: "Technical Steering Committee (TSC)", + description: + "The Technical Steering Committee oversees the development and evolution of the GraphQL specification. It sets the technical direction for the project and makes decisions on behalf of the GraphQL Foundation.", + url: "https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md", + members: [ + { name: "Lee Byron", github: "leebyron" }, + { name: "Benjie Gillam", github: "benjie" }, + { name: "Kewei Qu", github: "Keweiqu" }, + { name: "Mark Larah", github: "magicmark" }, + { name: "Martin Bonnin", github: "martinbonnin" }, + { name: "Matt Mahoney", github: "mjmahone" }, + { name: "Michael Staib", github: "michaelstaib" }, + { name: "Pascal Senn", github: "PascalSenn" }, + { name: "Rob Richard", github: "robrichard" }, + { name: "Uri Goldshtein", github: "Urigo" }, + { name: "Yaacov Rydzinski", github: "yaacovCR" }, + ], + }, + { + title: "gaps.graphql.org", + description: + "GraphQL Auxiliary Proposals — filling the GAPs in the GraphQL specification.", + url: "https://gaps.graphql.org", + members: [], + }, + { + title: "rfcs.graphql.org", + description: "The GraphQL RFC tracker lists all RFCs and their state.", + url: "https://rfcs.graphql.org", + members: [{ name: "Benjie Gillam", github: "benjie" }], + }, + { + title: "scalars.graphql.org", + description: + "A collaborative effort to define and standardize custom scalar types for GraphQL, making it easier to share type definitions across implementations.", + url: "https://scalars.graphql.org", + members: [{ name: "Martin Bonnin", github: "martinbonnin" }], + }, + ], + Community: [ + { + title: "Community gardening", + description: "Keeping the GraphQL community running smoothly.", + url: "https://graphql.org/", + members: [ + { name: "Benjie Gillam", github: "benjie" }, + { name: "Jem Gillam", github: "jemgillam" }, + ], + }, + { + title: "Grants Program", + description: "Managing the GraphQL grants program.", + url: "https://graphql.org/community/foundation/community-grant/", + members: [{ name: "Martin Bonnin", github: "martinbonnin" }], + }, + { + title: "GraphQL Weekly", + description: + "A weekly newsletter curating the best GraphQL news, articles, tutorials, and community updates from across the ecosystem.", + url: "https://graphqlweekly.com", + members: [], + }, + { + title: "Socials", + description: + "Getting the GraphQL word out on social networks: X, BlueSky, LinkedIn,...", + url: "https://typefully.com/", + members: [ + { name: "Benjie Gillam", github: "benjie" }, + { name: "Jean Lucas", github: "jeanlucaslima"}, + { name: "Jem Gillam", github: "jemgillam" }, + { name: "Martin Bonnin", github: "martinbonnin" }, + { name: "Michael Staib", github: "michaelstaib" }, + ], + }, + { + title: "YouTube", + description: "Managing the YouTube channel.", + url: "https://www.youtube.com/@graphqltv/videos", + members: [{ name: "Michael Staib", github: "michaelstaib" }], + }, + { + title: "GraphQL Day", + description: "Organizing GraphQL Day events all around the world.", + url: "https://graphql.org/day", + members: [ + { name: "Benjie Gillam", github: "benjie" }, + { name: "Jeff Auriemma", github: "bignimbus" }, + { name: "Jem Gillam", github: "jemgillam" }, + { name: "Martin Bonnin", github: "martinbonnin" }, + { name: "Michael Staib", github: "michaelstaib" }, + { name: "Pascal Senn", github: "PascalSenn" }, + ], + }, + ], + Projects: [ + { + title: "GraphQL.js", + description: + "The reference implementation of GraphQL for JavaScript, providing the canonical implementation of the GraphQL specification.", + url: "https://github.com/graphql/graphql-js", + members: [], + }, + { + title: "GraphiQL", + description: + "An in-browser IDE for exploring GraphQL APIs, used by developers worldwide to write, test, and debug queries.", + url: "https://github.com/graphql/graphiql", + members: [], + }, + ], + "Working Groups": [ + { + title: "Composite Schemas working group (Federation)", + description: + "Building a specification that covers many of the shared concerns when building a larger GraphQL schema as a composite of many smaller GraphQL schemas.", + url: "https://github.com/graphql/composite-schemas-wg", + members: [ + { name: "Derek Kuc", github: "dariuszkuc" }, + { name: "Michael Staib", github: "michaelstaib" }, + { name: "Pascal Senn", github: "PascalSenn" }, + ], + }, + { + title: "AI Working Group", + description: + "A working group focused on integrating GraphQL with AI systems and defining best practices for using GraphQL in AI-powered applications.", + url: "https://github.com/graphql/ai-wg", + members: [ + { name: "Jeff Auriemma", github: "bignimbus" }, + { name: "Pascal Senn", github: "PascalSenn" }, + ], + }, + { + title: "OTel Working Group", + description: + "A working group defining OpenTelemetry conventions and semantics for GraphQL, enabling consistent observability across GraphQL implementations.", + url: "https://github.com/graphql/otel-wg", + members: [{ name: "Pascal Senn", github: "PascalSenn" }], + }, + { + title: "GraphQL over HTTP Working Group", + description: + "A working group that defines and maintains the specification for transporting GraphQL over HTTP, ensuring interoperability across servers and clients.", + url: "https://github.com/graphql/graphql-over-http", + members: [ + { name: "Benjie Gillam", github: "benjie" }, + { name: "Michael Staib", github: "michaelstaib" }, + { name: "Martin Bonnin", github: "martinbonnin" }, + ], + }, + ], +} + +const archivedSections: TeamSection[] = [ + { + title: "Nullability Working Group", + description: + "A working group that explored improvements to GraphQL's null handling, including the @semanticNonNull directive and related proposals. Now archived, with its work continuing in the main GraphQL WG.", + url: "https://github.com/graphql/nullability-wg", + members: [{ name: "Martin Bonnin", github: "martinbonnin" }], + }, +] + +export default async function TeamPage() { + return ( + <> + + } + > +
+ +
+
+ +
+ + +

Archived teams

+ + +
+

+ Note: To update this page, please send a{" "} pull + request to + + github.com/graphql/graphql.github.io + + . Contributions are welcome! +

+
+
+ + ) +} + +function Stripes() { + return ( +
+ +
+ ) +} diff --git a/src/pages/_meta.tsx b/src/pages/_meta.tsx index ff7556ec3d..823f1fabe1 100644 --- a/src/pages/_meta.tsx +++ b/src/pages/_meta.tsx @@ -42,6 +42,11 @@ export default { type: "menu", title: "Community", items: { + team: { + title: "Team", + type: "page", + href: "/community/team", + }, events: { title: "Events", type: "page", diff --git a/src/pages/community/_meta.ts b/src/pages/community/_meta.ts index 7b7c55a15a..b432b2ce27 100644 --- a/src/pages/community/_meta.ts +++ b/src/pages/community/_meta.ts @@ -1,4 +1,8 @@ export default { + team: { + type: "page", + href: "/community/team", + }, "official-channels": "", "training-courses": "", "community-channels": "", From 84037c8fc79af0e88893012c4f555e9fb0b3bf8c Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Wed, 1 Jul 2026 17:11:11 +0200 Subject: [PATCH 2/6] format --- src/app/(main)/community/team/page.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx index ad390fdf2e..a5beec09da 100644 --- a/src/app/(main)/community/team/page.tsx +++ b/src/app/(main)/community/team/page.tsx @@ -199,7 +199,7 @@ const sections: Record = { url: "https://typefully.com/", members: [ { name: "Benjie Gillam", github: "benjie" }, - { name: "Jean Lucas", github: "jeanlucaslima"}, + { name: "Jean Lucas", github: "jeanlucaslima" }, { name: "Jem Gillam", github: "jemgillam" }, { name: "Martin Bonnin", github: "martinbonnin" }, { name: "Michael Staib", github: "michaelstaib" }, @@ -334,9 +334,8 @@ export default async function TeamPage() {
-

- Note: To update this page, please send a{" "} pull - request to +

+ Note: To update this page, please send a pull request to Date: Wed, 1 Jul 2026 19:42:55 +0200 Subject: [PATCH 3/6] update --- src/app/(main)/community/team/page.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx index a5beec09da..f10410d972 100644 --- a/src/app/(main)/community/team/page.tsx +++ b/src/app/(main)/community/team/page.tsx @@ -153,7 +153,7 @@ const sections: Record = { description: "GraphQL Auxiliary Proposals — filling the GAPs in the GraphQL specification.", url: "https://gaps.graphql.org", - members: [], + members: [{ name: "Mark Larah", github: "magicmark" }], }, { title: "rfcs.graphql.org", @@ -260,6 +260,7 @@ const sections: Record = { url: "https://github.com/graphql/ai-wg", members: [ { name: "Jeff Auriemma", github: "bignimbus" }, + { name: "Mark Larah", github: "magicmark" }, { name: "Pascal Senn", github: "PascalSenn" }, ], }, From 247e7448a31d080f4a278d043b9a8385a02649c7 Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Wed, 1 Jul 2026 19:56:20 +0200 Subject: [PATCH 4/6] update --- src/app/(main)/community/team/page.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx index f10410d972..9eeb899ef9 100644 --- a/src/app/(main)/community/team/page.tsx +++ b/src/app/(main)/community/team/page.tsx @@ -153,7 +153,10 @@ const sections: Record = { description: "GraphQL Auxiliary Proposals — filling the GAPs in the GraphQL specification.", url: "https://gaps.graphql.org", - members: [{ name: "Mark Larah", github: "magicmark" }], + members: [ + { name: "Mark Larah", github: "magicmark" }, + { name: "Martin Bonnin", github: "martinbonnin" }, + ], }, { title: "rfcs.graphql.org", From 382d14b85d29f60a34a94d30ac2601bef3dc4a57 Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Thu, 2 Jul 2026 10:12:13 +0200 Subject: [PATCH 5/6] Add Dale and Kewei --- src/app/(main)/community/team/page.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx index 9eeb899ef9..95957e8458 100644 --- a/src/app/(main)/community/team/page.tsx +++ b/src/app/(main)/community/team/page.tsx @@ -262,7 +262,9 @@ const sections: Record = { "A working group focused on integrating GraphQL with AI systems and defining best practices for using GraphQL in AI-powered applications.", url: "https://github.com/graphql/ai-wg", members: [ + { name: "Dale Seo", github: "DaleSeo" }, { name: "Jeff Auriemma", github: "bignimbus" }, + { name: "Kewei Qu", github: "Keweiqu" }, { name: "Mark Larah", github: "magicmark" }, { name: "Pascal Senn", github: "PascalSenn" }, ], From e32b17b9a73d4e318af0b1dab4f07ce29e01eefd Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Fri, 3 Jul 2026 15:27:02 +0200 Subject: [PATCH 6/6] Add defer/stream working group --- src/app/(main)/community/team/page.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx index 95957e8458..0fa9e92a0c 100644 --- a/src/app/(main)/community/team/page.tsx +++ b/src/app/(main)/community/team/page.tsx @@ -287,6 +287,16 @@ const sections: Record = { { name: "Martin Bonnin", github: "martinbonnin" }, ], }, + { + title: "@defer/@stream Working Group", + description: + "A working group that defines and maintains the specification for transporting GraphQL over HTTP, ensuring interoperability across servers and clients.", + url: "https://github.com/graphql/defer-stream-wg", + members: [ + { name: "Rob Richard", github: "robrichard" }, + { name: "Yaacov Rydzinski", github: "yaacovCR" }, + ], + }, ], }