diff --git a/src/app/(main)/community/team/page.tsx b/src/app/(main)/community/team/page.tsx
new file mode 100644
index 0000000000..0fa9e92a0c
--- /dev/null
+++ b/src/app/(main)/community/team/page.tsx
@@ -0,0 +1,394 @@
+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.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.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: [
+ { name: "Mark Larah", github: "magicmark" },
+ { name: "Martin Bonnin", github: "martinbonnin" },
+ ],
+ },
+ {
+ 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: "Dale Seo", github: "DaleSeo" },
+ { name: "Jeff Auriemma", github: "bignimbus" },
+ { name: "Kewei Qu", github: "Keweiqu" },
+ { name: "Mark Larah", github: "magicmark" },
+ { 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" },
+ ],
+ },
+ {
+ 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" },
+ ],
+ },
+ ],
+}
+
+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
+
+
+
+
+ >
+ )
+}
+
+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": "",