diff --git a/package.json b/package.json
index ca5a6bc7f6..2c8fdcf220 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"@codemirror/lint": "6.9.2",
"@codemirror/state": "6.5.3",
"@codemirror/view": "6.39.9",
- "@graphql-tools/schema": "10.0.30",
+ "@graphql-tools/schema": "10.0.31",
"@hasparus/lezer-json-shikified": "1.1.3",
"@headlessui/react": "^2.2.4",
"@igorkowalczyk/is-browser": "^5.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d31bd55b68..a7927aabf0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -51,8 +51,8 @@ importers:
specifier: 6.39.9
version: 6.39.9
'@graphql-tools/schema':
- specifier: 10.0.30
- version: 10.0.30(graphql@16.10.0)
+ specifier: 10.0.31
+ version: 10.0.31(graphql@16.10.0)
'@hasparus/lezer-json-shikified':
specifier: 1.1.3
version: 1.1.3
@@ -133,7 +133,7 @@ importers:
version: 0.469.0(react@18.3.1)
motion:
specifier: ^12.11.0
- version: 12.23.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 12.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next:
specifier: 14.2.35
version: 14.2.35(@babel/core@7.28.3)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1490,8 +1490,8 @@ packages:
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- '@graphql-tools/merge@9.1.6':
- resolution: {integrity: sha512-bTnP+4oom4nDjmkS3Ykbe+ljAp/RIiWP3R35COMmuucS24iQxGLa9Hn8VMkLIoaoPxgz6xk+dbC43jtkNsFoBw==}
+ '@graphql-tools/merge@9.1.7':
+ resolution: {integrity: sha512-Y5E1vTbTabvcXbkakdFUt4zUIzB1fyaEnVmIWN0l0GMed2gdD01TpZWLUm4RNAxpturvolrb24oGLQrBbPLSoQ==}
engines: {node: '>=16.0.0'}
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
@@ -1508,8 +1508,8 @@ packages:
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- '@graphql-tools/schema@10.0.30':
- resolution: {integrity: sha512-yPXU17uM/LR90t92yYQqn9mAJNOVZJc0nQtYeZyZeQZeQjwIGlTubvvoDL0fFVk+wZzs4YQOgds2NwSA4npodA==}
+ '@graphql-tools/schema@10.0.31':
+ resolution: {integrity: sha512-ZewRgWhXef6weZ0WiP7/MV47HXiuFbFpiDUVLQl6mgXsWSsGELKFxQsyUCBos60Qqy1JEFAIu3Ns6GGYjGkqkQ==}
engines: {node: '>=16.0.0'}
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
@@ -1544,6 +1544,12 @@ packages:
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ '@graphql-tools/utils@11.0.0':
+ resolution: {integrity: sha512-bM1HeZdXA2C3LSIeLOnH/bcqSgbQgKEDrjxODjqi3y58xai2TkNrtYcQSoWzGbt9VMN1dORGjR7Vem8SPnUFQA==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+
'@graphql-tools/wrap@10.1.4':
resolution: {integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==}
engines: {node: '>=18.0.0'}
@@ -3762,8 +3768,8 @@ packages:
fraction.js@5.3.4:
resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
- framer-motion@12.23.26:
- resolution: {integrity: sha512-cPcIhgR42xBn1Uj+PzOyheMtZ73H927+uWPDVhUMqxy8UHt6Okavb6xIz9J/phFUHUj0OncR6UvMfJTXoc/LKA==}
+ framer-motion@12.26.2:
+ resolution: {integrity: sha512-lflOQEdjquUi9sCg5Y1LrsZDlsjrHw7m0T9Yedvnk7Bnhqfkc89/Uha10J3CFhkL+TCZVCRw9eUGyM/lyYhXQA==}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -4875,14 +4881,14 @@ packages:
mlly@1.7.4:
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
- motion-dom@12.23.23:
- resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==}
+ motion-dom@12.26.2:
+ resolution: {integrity: sha512-KLMT1BroY8oKNeliA3JMNJ+nbCIsTKg6hJpDb4jtRAJ7nCKnnpg/LTq/NGqG90Limitz3kdAnAVXecdFVGlWTw==}
- motion-utils@12.23.6:
- resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==}
+ motion-utils@12.24.10:
+ resolution: {integrity: sha512-x5TFgkCIP4pPsRLpKoI86jv/q8t8FQOiM/0E8QKBzfMozWHfkKap2gA1hOki+B5g3IsBNpxbUnfOum1+dgvYww==}
- motion@12.23.26:
- resolution: {integrity: sha512-Ll8XhVxY8LXMVYTCfme27WH2GjBrCIzY4+ndr5QKxsK+YwCtOi2B/oBi5jcIbik5doXuWT/4KKDOVAZJkeY5VQ==}
+ motion@12.26.2:
+ resolution: {integrity: sha512-2Q6g0zK1gUJKhGT742DAe42LgietcdiJ3L3OcYAHCQaC1UkLnn6aC8S/obe4CxYTLAgid2asS1QdQ/blYfo5dw==}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -7809,7 +7815,7 @@ snapshots:
'@graphql-codegen/core@5.0.0(graphql@16.10.0)':
dependencies:
'@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0)
- '@graphql-tools/schema': 10.0.30(graphql@16.10.0)
+ '@graphql-tools/schema': 10.0.31(graphql@16.10.0)
'@graphql-tools/utils': 10.10.0(graphql@16.10.0)
graphql: 16.10.0
tslib: 2.6.3
@@ -7850,7 +7856,7 @@ snapshots:
'@graphql-codegen/schema-ast@5.0.0(graphql@16.10.0)':
dependencies:
'@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0)
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
graphql: 16.10.0
tslib: 2.6.3
@@ -7943,7 +7949,7 @@ snapshots:
'@graphql-tools/batch-execute@9.0.19(graphql@16.10.0)':
dependencies:
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
'@whatwg-node/promise-helpers': 1.3.2
dataloader: 2.2.3
graphql: 16.10.0
@@ -7964,8 +7970,8 @@ snapshots:
dependencies:
'@graphql-tools/batch-execute': 9.0.19(graphql@16.10.0)
'@graphql-tools/executor': 1.4.9(graphql@16.10.0)
- '@graphql-tools/schema': 10.0.30(graphql@16.10.0)
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/schema': 10.0.31(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
'@repeaterjs/repeater': 3.0.6
'@whatwg-node/promise-helpers': 1.3.2
dataloader: 2.2.3
@@ -7982,13 +7988,13 @@ snapshots:
'@graphql-tools/executor-common@0.0.4(graphql@16.10.0)':
dependencies:
'@envelop/core': 5.3.0
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
graphql: 16.10.0
'@graphql-tools/executor-common@0.0.6(graphql@16.10.0)':
dependencies:
'@envelop/core': 5.3.0
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
graphql: 16.10.0
'@graphql-tools/executor-graphql-ws@2.0.7(graphql@16.10.0)':
@@ -8052,7 +8058,7 @@ snapshots:
'@graphql-tools/executor@1.4.9(graphql@16.10.0)':
dependencies:
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
'@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
'@repeaterjs/repeater': 3.0.6
'@whatwg-node/disposablestack': 0.0.6
@@ -8143,7 +8149,7 @@ snapshots:
'@graphql-tools/load@8.1.2(graphql@16.10.0)':
dependencies:
- '@graphql-tools/schema': 10.0.30(graphql@16.10.0)
+ '@graphql-tools/schema': 10.0.31(graphql@16.10.0)
'@graphql-tools/utils': 10.9.1(graphql@16.10.0)
graphql: 16.10.0
p-limit: 3.1.0
@@ -8155,30 +8161,30 @@ snapshots:
graphql: 16.10.0
tslib: 2.8.1
- '@graphql-tools/merge@9.1.6(graphql@16.10.0)':
+ '@graphql-tools/merge@9.1.7(graphql@16.10.0)':
dependencies:
- '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
+ '@graphql-tools/utils': 11.0.0(graphql@16.10.0)
graphql: 16.10.0
tslib: 2.8.1
'@graphql-tools/optimize@2.0.0(graphql@16.10.0)':
dependencies:
graphql: 16.10.0
- tslib: 2.6.3
+ tslib: 2.8.1
'@graphql-tools/relay-operation-optimizer@7.0.23(graphql@16.10.0)':
dependencies:
'@ardatan/relay-compiler': 12.0.3(graphql@16.10.0)
- '@graphql-tools/utils': 10.10.1(graphql@16.10.0)
+ '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
graphql: 16.10.0
- tslib: 2.6.3
+ tslib: 2.8.1
transitivePeerDependencies:
- encoding
- '@graphql-tools/schema@10.0.30(graphql@16.10.0)':
+ '@graphql-tools/schema@10.0.31(graphql@16.10.0)':
dependencies:
- '@graphql-tools/merge': 9.1.6(graphql@16.10.0)
- '@graphql-tools/utils': 10.11.0(graphql@16.10.0)
+ '@graphql-tools/merge': 9.1.7(graphql@16.10.0)
+ '@graphql-tools/utils': 11.0.0(graphql@16.10.0)
graphql: 16.10.0
tslib: 2.8.1
@@ -8262,10 +8268,18 @@ snapshots:
graphql: 16.10.0
tslib: 2.8.1
+ '@graphql-tools/utils@11.0.0(graphql@16.10.0)':
+ dependencies:
+ '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
+ '@whatwg-node/promise-helpers': 1.3.2
+ cross-inspect: 1.0.1
+ graphql: 16.10.0
+ tslib: 2.8.1
+
'@graphql-tools/wrap@10.1.4(graphql@16.10.0)':
dependencies:
'@graphql-tools/delegate': 10.2.23(graphql@16.10.0)
- '@graphql-tools/schema': 10.0.30(graphql@16.10.0)
+ '@graphql-tools/schema': 10.0.31(graphql@16.10.0)
'@graphql-tools/utils': 10.10.1(graphql@16.10.0)
'@whatwg-node/promise-helpers': 1.3.2
graphql: 16.10.0
@@ -9690,7 +9704,7 @@ snapshots:
camel-case@4.1.2:
dependencies:
pascal-case: 3.1.2
- tslib: 2.6.3
+ tslib: 2.8.1
camelcase-css@2.0.1: {}
@@ -9703,7 +9717,7 @@ snapshots:
capital-case@1.0.4:
dependencies:
no-case: 3.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
upper-case-first: 2.0.2
ccount@2.0.1: {}
@@ -9869,7 +9883,7 @@ snapshots:
constant-case@3.0.4:
dependencies:
no-case: 3.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
upper-case: 2.0.2
convert-source-map@2.0.0: {}
@@ -10789,10 +10803,10 @@ snapshots:
fraction.js@5.3.4: {}
- framer-motion@12.23.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ framer-motion@12.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- motion-dom: 12.23.23
- motion-utils: 12.23.6
+ motion-dom: 12.26.2
+ motion-utils: 12.24.10
tslib: 2.8.1
optionalDependencies:
react: 18.3.1
@@ -10972,7 +10986,7 @@ snapshots:
graphql-tag@2.12.6(graphql@16.10.0):
dependencies:
graphql: 16.10.0
- tslib: 2.6.3
+ tslib: 2.8.1
graphql-ws@6.0.6(graphql@16.10.0)(ws@8.18.3):
dependencies:
@@ -11174,7 +11188,7 @@ snapshots:
header-case@2.0.4:
dependencies:
capital-case: 1.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
hosted-git-info@7.0.2:
dependencies:
@@ -12307,15 +12321,15 @@ snapshots:
pkg-types: 1.3.1
ufo: 1.6.1
- motion-dom@12.23.23:
+ motion-dom@12.26.2:
dependencies:
- motion-utils: 12.23.6
+ motion-utils: 12.24.10
- motion-utils@12.23.6: {}
+ motion-utils@12.24.10: {}
- motion@12.23.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ motion@12.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- framer-motion: 12.23.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ framer-motion: 12.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
tslib: 2.8.1
optionalDependencies:
react: 18.3.1
@@ -12471,7 +12485,7 @@ snapshots:
no-case@3.0.4:
dependencies:
lower-case: 2.0.2
- tslib: 2.6.3
+ tslib: 2.8.1
node-domexception@1.0.0: {}
@@ -12639,7 +12653,7 @@ snapshots:
param-case@3.0.4:
dependencies:
dot-case: 3.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
parent-module@1.0.1:
dependencies:
@@ -12706,12 +12720,12 @@ snapshots:
pascal-case@3.1.2:
dependencies:
no-case: 3.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
path-case@3.0.4:
dependencies:
dot-case: 3.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
path-data-parser@0.1.0: {}
@@ -13357,7 +13371,7 @@ snapshots:
sentence-case@3.0.4:
dependencies:
no-case: 3.0.4
- tslib: 2.6.3
+ tslib: 2.8.1
upper-case-first: 2.0.2
serialize-query-params@2.0.4: {}
diff --git a/scripts/sync-sched/schedule-2026.json b/scripts/sync-sched/schedule-2026.json
new file mode 100644
index 0000000000..fe51488c70
--- /dev/null
+++ b/scripts/sync-sched/schedule-2026.json
@@ -0,0 +1 @@
+[]
diff --git a/scripts/sync-sched/sync.ts b/scripts/sync-sched/sync.ts
index 6b92cf15c2..d40b2ba94d 100644
--- a/scripts/sync-sched/sync.ts
+++ b/scripts/sync-sched/sync.ts
@@ -84,6 +84,7 @@ async function sync(
2023: "https://graphqlconf23.sched.com/api",
2024: "https://graphqlconf2024.sched.com/api",
2025: "https://graphqlconf2025.sched.com/api",
+ 2026: "https://graphqlconf2026.sched.com/api",
}[year]
assert(apiUrl, `API URL for year ${year} not found`)
diff --git a/src/app/conf/2026/_data.ts b/src/app/conf/2026/_data.ts
index 66ded603c2..5f969f05f4 100644
--- a/src/app/conf/2026/_data.ts
+++ b/src/app/conf/2026/_data.ts
@@ -6,7 +6,7 @@ import { readSpeakers } from "../_api/sched-data"
const speakersData = require("../../../../scripts/sync-sched/speakers.json")
const equalitySets: string[][] = speakersData.equal || []
-export const schedule: ScheduleSession[] = require("../../../../scripts/sync-sched/schedule-2025.json")
+export const schedule: ScheduleSession[] = require("../../../../scripts/sync-sched/schedule-2026.json")
type SpeakerUsername = SchedSpeaker["username"]
@@ -22,7 +22,7 @@ for (const session of schedule) {
}
}
-export const speakers: SchedSpeaker[] = readSpeakers(2025).filter(speaker =>
+export const speakers: SchedSpeaker[] = readSpeakers(2026).filter(speaker =>
speakerSessions.has(speaker.username),
)
@@ -34,9 +34,11 @@ export const previousEditionSessions = new Map<
{
const schedule2023 = require("../../../../scripts/sync-sched/schedule-2023.json")
const schedule2024 = require("../../../../scripts/sync-sched/schedule-2024.json")
+ const schedule2025 = require("../../../../scripts/sync-sched/schedule-2025.json")
collectSessionsFromPreviousYears(schedule2023)
collectSessionsFromPreviousYears(schedule2024)
+ collectSessionsFromPreviousYears(schedule2025)
}
function collectSessionsFromPreviousYears(schedule: ScheduleSession[]) {
diff --git a/src/app/conf/2026/_videos.ts b/src/app/conf/2026/_videos.ts
index 8f4fe7b87a..a644ca43ec 100644
--- a/src/app/conf/2026/_videos.ts
+++ b/src/app/conf/2026/_videos.ts
@@ -7,7 +7,7 @@
*
* - part: snippet
* - maxResults: 50
- * - playlistId: UUIVbABX6aSk5hy5UPAhQdmQ
+ * - playlistId:
*
* And then also adding `pageToken` for the second request to get the second
* page.
@@ -32,357 +32,4 @@
export const videos: {
id: string
title: string
-}[] = [
- {
- id: "-ZpCOOf_fYE",
- title: "Relay Migration API at Pinterest - Mauricio Montalvo, Pinterest",
- },
- {
- id: "Orgyp3xOqwY",
- title:
- "LinkedIn's Code-First Approach To Federated GraphQL With gRPC - Ethan Shen & Spencer Kwok, LinkedIn",
- },
- {
- id: "UiTHTDNE5GQ",
- title:
- "Breaking the Monolith: Our Journey From Proto To Federated GraphQL at Scale - Mansi Mittal",
- },
- {
- id: "LBUSHL31MpI",
- title:
- "Deep Dive Into a GraphQL Federation Gateway, From Query Planning To the Execution - Benjamin Rabier",
- },
- {
- id: "tHXSmuoTcFg",
- title:
- "Rebuilding Buffer's Public API - Amanda Marochko & Joe Birch, Buffer",
- },
- {
- id: "hz0bGBaEKNQ",
- title: "Local Data Consistency With GraphQL - Sabrina Wasserman, Meta",
- },
- {
- id: "afKv3qzLpvc",
- title: "Hacking the Federation Query Planner - Mark Larah, Yelp",
- },
- {
- id: "PcbHYunr-gc",
- title:
- "LLMs + GraphQL + MCP: A Blueprint for Scalable AI Tooling - Erik Wrede & Thore Koritzius",
- },
- {
- id: "DoD7KJpiIkM",
- title: "Proven Schema Designs and Best-practices - Jeff Dolle, The Guild",
- },
- {
- id: "3_se3lJn-0o",
- title:
- "Lightning Talk: Efficient Semantic Comparison of GraphQL Queries - Derek Kuc, Apollo GraphQL",
- },
- {
- id: "grfAL6RYBPE",
- title:
- 'Lightning Talk: "Please Migrate Away From Field X To Field Y Before Z" - A Story on... Rick Bijkerk',
- },
- {
- id: "rKxC4EJYGKo",
- title: "The Two GraphQLs - Andrei Bocan & Andreas Marek, Atlassian",
- },
- {
- id: "g76iuFsi2C0",
- title:
- "Smarter Caching With Events: Targeted Invalidation in Federated Graphs - Juan Carlos Blanco Delgado",
- },
- {
- id: "nmBGLw_vZo8",
- title:
- "Safely Roll Out Strict Error Handling in Your GraphQL Codebase - Itamar Kestenbaum, Meta",
- },
- {
- id: "bL2JCd1lo80",
- title: "From Data Loaders To Batch Resolvers - Aileen Chen, Airbnb",
- },
- {
- id: "AGVEV53fVEo",
- title:
- "One API Definition To Rule Them All: Generating GraphQL Schemas From TypeSpec - Fiona Huang",
- },
- {
- id: "ttmp_zkHH_0",
- title:
- "Lightning Talk: What If GraphQL Knew Accessibility? - Vanessa Johnson, The New York Times",
- },
- {
- id: "HK_TvL5jr0k",
- title:
- "Lightning Talk: Hello Graffle! A Modular Type Safe GraphQL Client - Jason Kuhrt, The Guild",
- },
- {
- id: "DcoI9HusjP0",
- title:
- "Keynote: Closing Remarks - Lee Byron, Co-Creator of GraphQL & Director, GraphQL Foundation",
- },
- {
- id: "LZQbu6wQfLs",
- title:
- "Keynote: What Is the GraphQL Foundation? - Jeff Auriemma, Senior Engineering Manager, Apollo GraphQL",
- },
- {
- id: "niizRUy-2Yk",
- title:
- "“One Schema To Rule Them All”: Simplifying 10+ Mediaset Apps With One Single GraphQL S... Marco Reni",
- },
- {
- id: "AIdqMIHR098",
- title:
- "Instagram’s REST To GraphQL Migrat... Xiao Han, Chi Chan, Anirudh Padmarao, Lisa Watkins & Curtis Li",
- },
- {
- id: "PUMPLX1pcGc",
- title:
- "Reintroducing Apollo Client: V4 and Beyond - Lenz Weber-Tronic, Apollo GraphQL",
- },
- {
- id: "3GWZ9yiskFk",
- title:
- "GraphQL in a World of Full-stack, Rich Clients: The Next Evolution - Robert Balicki, Pinterest",
- },
- {
- id: "uGlA_vN3P2g",
- title:
- "Lightning Talk: GraphQL Caching Lightning Talk - Emily Goodwin, Independent",
- },
- {
- id: "QsDfSSKPq9g",
- title:
- "Lightning Talk: Next-Generation GraphQL Cache Management in Your Android and iOS Apps - Benoit Lubek",
- },
- {
- id: "BY6Dd-eygq4",
- title:
- "Grats: Bringing Implementation-First GraphQL to TypeScript - Jordan Eldredge, Meta",
- },
- {
- id: "1sbK2t9JJGo",
- title:
- "From Hobby Project To Industry Standard: Lessons From 10 Years of Grap... Donna Zhou & Andreas Marek",
- },
- {
- id: "NUYMJbQc7Vs",
- title:
- 'Workshop: Social Media App "Y" with GraphQL, Relay, and React Server Components... Saihajpreet Singh',
- },
- {
- id: "zw15cuj5gww",
- title:
- "Avoiding the Monolith Trap: Lessons from Airbnb’s Multi-Tenant GraphQL Platform - Adam Miskiewicz",
- },
- {
- id: "94Nz2B6ETD8",
- title: "Compose Your Mobile App With GraphQL - Martin Bonnin, Apollo",
- },
- {
- id: "cRTYf59rYMU",
- title:
- "GraphQL Isn't Just for Enterprises: The New King of Fullstack Typescript Application... Alec Aivazis",
- },
- {
- id: "H-FyKa4VaOY",
- title:
- "Breaking and Building Boundaries: Securing Federated GraphQL - Yehuda Rosenberg, JFrog",
- },
- {
- id: "O3PudaSzRh4",
- title:
- "Unlocking Federation Security at Scale in Booking.com - Sanver Tarmur & Minghe Huang, Booking.com",
- },
- {
- id: "NH6unhX6BZQ",
- title:
- "Streamlining Data Collection and Entity Management for Amazon's Buyer Abuse Preven... Adam Cervantes",
- },
- {
- id: "y_Ekm3dF3qI",
- title: "@async: Defer Even More! - Matt Mahoney, Meta",
- },
- {
- id: "WTSY3mgXKiQ",
- title: "Performant GraphQL at Scale - Andreas Marek, Atlassian",
- },
- {
- id: "IlAfS5oMiHM",
- title:
- "Imagining GraphQL 2.0: Choices in a Hypothetic... Kewei Qu, Curtis Li, Benjie Gillam & Martin Bonnin",
- },
- {
- id: "zUVm45MKrS8",
- title: "Lower Latency With Streaming GraphQL - Rob Richard, 1stDibs",
- },
- {
- id: "Ggmsij69xNY",
- title: "The State of GraphQL Open Telemetry - Pascal Senn, ChilliCream",
- },
- {
- id: "XKeGtImv4Ew",
- title:
- "The State of GraphQL Federation - Michael Staib, ChilliCream & Martijn Walraven, Apollo",
- },
- {
- id: "4rALfQ-SBrM",
- title:
- "Namespacing Is the Next Frontier of GraphQL Federation - Martijn Walraven, Apollo",
- },
- {
- id: "odwQUAkmW44",
- title:
- "Fixing GraphQL's Biggest Mistake in 512 Bytes - Benjie Gillam, Graphile",
- },
- {
- id: "c2Jgh3GD_Jo",
- title: "GraphQL All Hands Meeting",
- },
- {
- id: "eLz-TADWm0Q",
- title: "Workshop: Composite Schemas in Action - Michael Staib, Chillicream",
- },
- {
- id: "1RNzqXBNSzM",
- title:
- "Workshop: Unleash the Power of Federation with Hive Gateway - Denis Badurina & Arda Tanrıkulu",
- },
- {
- id: "lFrm-nR-TXs",
- title:
- "Workshop: Beyond GraphQL Federation: How We Use Composite Schemas and... Benjamin Rabier & Tom Houlé",
- },
- {
- id: "jJLRnjtQZDQ",
- title:
- "Workshop: Apollo Router & MCP: A Modern Agentic Development Approach - Michael Watson",
- },
- {
- id: "hX70dcYeIrA",
- title:
- "Building a Kotlin Federated GraphQL Gateway and Executor - Samuel Bernardo Vázquez Andalón",
- },
- {
- id: "2LsaClmcw7s",
- title:
- "Building an Open-Source Federation Query Planner & Router - Dotan Simha & Kamil Kisiela, The Guild",
- },
- {
- id: "hZQZrXk8dUE",
- title:
- "Lightning Talk: Authorization in Federated GraphQL - Tom Houlé, Grafbase",
- },
- {
- id: "smqavgkzwlI",
- title:
- "Lightning Talk: The Federated GraphQL Subscriptions Zoo - Tom Houlé, Grafbase",
- },
- {
- id: "1p2OAsYdUV0",
- title: "Event Sourcing + GraphQL = ♥️ - Mike Astle, Xolvio",
- },
- {
- id: "gUs0Zj28geM",
- title:
- "Composing Your UI With GraphQL: Building Federated Component Systems That Sca... Gabriel Cura-Castro",
- },
- {
- id: "euaUo-vJBKc",
- title:
- "From Docs To Conversation & Action - Daniel Hai & Dipro Bhowmik, monday.com",
- },
- {
- id: "1fwiLhSW-2Y",
- title:
- "Sponsored Session: Building the Ideal GraphQL Server Workflow Featuring GraphQL Code... Eddy Nguyen",
- },
- {
- id: "pL8DhC5iJCM",
- title:
- "Lightning Talk: See the Graph in GraphQL: Graph Visualization in Action - Ivan Goncharov, KeenEthics",
- },
- {
- id: "LgXtJymMp3U",
- title:
- "Lightning Talk: Offset Pagination Is Dead! Meet Relative Cursors - Michael Staib, ChilliCream",
- },
- {
- id: "vVLbh0n27m0",
- title:
- "What’s Missing in Your Graph? Using AI to Uncover and Close Gaps - Christian Ernst, Booking.com",
- },
- {
- id: "FINsHIb0p0g",
- title: "Death, Taxes, and Deprecation - Stephen Spalding, Netflix",
- },
- {
- id: "yInL1aPZjvI",
- title: "The Big Ideas in Relay - Jordan Eldredge, Meta",
- },
- {
- id: "kA55fNCyNJk",
- title:
- "From Private To Public: Evolving a GraphQL API for the Outside World - Laurin Quast, The Guild",
- },
- {
- id: "jlpH9nz_0tw",
- title:
- "GraphQL Performance Issues at Netflix Scale - Stephen Chambers, Netflix",
- },
- {
- id: "fsoWxaWqcrA",
- title: "Rethinking GraphQL Execution - Raymie Stata, Airbnb",
- },
- {
- id: "sNWe4wH67cE",
- title:
- "GraphQL Subscriptions Are Stateful; We Made Them Stateless - Matteo Collina, Platformatic",
- },
- {
- id: "gMCh8jRVMiQ",
- title:
- "How To Use Fragments (They're Not for Re-use!) - Janette Cheng, Meta",
- },
- {
- id: "Ot6O100VzQs",
- title:
- "Panel: APIs for AIs - Kewei Qu, Fredrik Björk, Boris Besemer, Michael Watson & Stephen Spalding",
- },
- {
- id: "zmKFUDemcJ8",
- title:
- "Sponsored Session: Schema Design Patterns: Leveraging Existing REST APIs for Rapid... Michael Watson",
- },
- {
- id: "u7C1bmB_TYg",
- title:
- "Keynote: How GraphQL is Redefining API Orchestration for the AI Era - Matt DeBergalis",
- },
- {
- id: "wM-wGpDxNb0",
- title:
- "Keynote: GraphQL at Meta - Jordan Eldredge, Software Engineer, Meta",
- },
- {
- id: "hQAuXJd15zM",
- title:
- "Keynote: Reimagining Developer Experience for AI-Native Development - Sarah Sanders",
- },
- {
- id: "IveEY_j9T8k",
- title:
- "Keynote: Community Update 2025: Growing in the Open - Benjie Gillam, Jem Gillam & Uri Goldshtein",
- },
- {
- id: "-pO67dMaB-U",
- title:
- "Keynote: Opening Remarks - Lee Byron, Co-Creator of GraphQL & Director, GraphQL Foundation",
- },
- {
- id: "UA9AQWJqWfc",
- title: "Keynote: Welcome Remarks - Sarah Sanders, Technical Writer, Docker",
- },
-]
+}[] = []
diff --git a/src/app/conf/2026/components/become-a-sponsor/index.tsx b/src/app/conf/2026/components/become-a-sponsor/index.tsx
index f14413a7fe..74b0bab2b9 100644
--- a/src/app/conf/2026/components/become-a-sponsor/index.tsx
+++ b/src/app/conf/2026/components/become-a-sponsor/index.tsx
@@ -18,6 +18,7 @@ export function BecomeASponsor() {
to industry leaders and decision-makers.
+ {/* TODO
+ */}
-
+ Security
Scaling
Observability, telemetry and tracing
+
Integrating AI and LLMs
Developer Experience
Frontend
Backend
Patterns and community trends
+
DX with AI and LLMs
Testing
Documentation
@@ -256,10 +255,10 @@ function ProcessTab() {
Subject Matter Experts
- This will be a panel of volunteers
- drawn from industry experts, working group members, security and
- observability experts, and maintainers and contributors to open source
- GraphQL projects. When evaluating the talks, they will{" "}
+ This will be a panel of volunteers drawn from industry experts, working
+ group members, security and observability experts, and maintainers and
+ contributors to open source GraphQL projects. When evaluating the talks,
+ they will{" "}
focus on how exciting and engaging the talks are and
use the following criteria:
diff --git a/src/app/conf/2026/components/get-your-ticket/index.tsx b/src/app/conf/2026/components/get-your-ticket/index.tsx
index a419c5e9b6..a765816322 100644
--- a/src/app/conf/2026/components/get-your-ticket/index.tsx
+++ b/src/app/conf/2026/components/get-your-ticket/index.tsx
@@ -21,7 +21,7 @@ export function GetYourTicket({ className }: { className?: string }) {
Get your ticket
- The registration deadline is 23:59 CET on the respective date.
+ The registration deadline is 23:59 PT on the respective date.
- Let's celebrate 10 years of GraphQL together
+ Let's celebrate GraphQL's success and plan for its future
Join two transformative days of expert insights and innovation to
@@ -40,11 +40,7 @@ export function RegisterToday({ className }: RegisterTodayProps) {
-
@@ -40,15 +41,15 @@ export function Venue(props: VenueProps) {
city centre, changed into a place of culture & business.
-
- Pakhuis De Zwijger
- Piet Heinkade 179, 1019 HC
- Amsterdam, Netherlands
-
+ */}
+
Menlo Park, California
+ {/*
Google Maps
+ */}
+ {/*
How to get to the venue?
+ */}
)
diff --git a/src/app/conf/2026/layout.tsx b/src/app/conf/2026/layout.tsx
index fca6edb14c..847087679b 100644
--- a/src/app/conf/2026/layout.tsx
+++ b/src/app/conf/2026/layout.tsx
@@ -58,7 +58,6 @@ export default function Layout({
links={[
{ children: "Sponsor", href: "/conf/2026/#sponsors" },
{ children: "Speakers", href: "/#speakers" },
- { children: "GraphQLConf 2024", href: "/conf/2024" },
{ children: "GraphQLConf 2025", href: "/conf/2025" },
{ children: "FAQ", href: "#faq" },
{ children: "Contact Us", href: "/conf/2026/resources/#contact" },
diff --git a/src/app/conf/2026/resources/resources.mdx b/src/app/conf/2026/resources/resources.mdx
index 070faf7558..a429e57707 100644
--- a/src/app/conf/2026/resources/resources.mdx
+++ b/src/app/conf/2026/resources/resources.mdx
@@ -37,45 +37,15 @@ If you have a food allergy we need to be aware of, please email us at [graphql_e
### Medical Resources
-**In an emergency, always dial 112**
-
-**Hospital**
-Amsterdam UMC – Locatie VUmc
-De Boelelaan 1117, 1118, 1081 HV Amsterdam
-\+31 (0)20 444 4444
-
-**Pharmacy**
-[Amsterdam Central Pharmacy](http://www.amsterdamcentralpharmacy.com/)
-\+31 20 235 7822
-De Ruijterkade 24, A,
-1012 AA Amsterdam, Netherlands
-
-**Taxi**
-TCA Taxicentrale Amsterdam
-\+31 020-777-7777
-[https://www.tcataxi.nl/](http://www.tcataxi.nl/)
+TBC
### Safety & Trauma Resources
-**Police**
-Police Station Amsterdam-West
-Houtmankade 34
-1013 MX Amsterdam, Netherlands
-
-**Sexual Assault Hotline**
-Centre Sexual Violence
-24 hours a day
-\+31(0)88 7555588
+TBC
## Onsite Resources
-### Nursing Room
-
-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.
-
-### Venue Accessibility
-
-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.
+TBC
### Reserved Seating
@@ -105,7 +75,7 @@ We will designate specific restrooms as all-gender for attendees who feel more c
### First Aid/Medical Assistance
-If you require first aid or medical assistance, please visit our registration desk or a venue information desk. For emergencies, please dial 112\.
+TBC
### How to Handle a Harassment Report
diff --git a/src/app/conf/2026/schedule/[id]/opengraph-image.tsx b/src/app/conf/2026/schedule/[id]/opengraph-image.tsx
index 85079ab982..418c2ed7ab 100644
--- a/src/app/conf/2026/schedule/[id]/opengraph-image.tsx
+++ b/src/app/conf/2026/schedule/[id]/opengraph-image.tsx
@@ -33,9 +33,9 @@ export default async function SessionOGImage({
(
),
{
diff --git a/src/app/conf/2026/schedule/[id]/page.tsx b/src/app/conf/2026/schedule/[id]/page.tsx
index d659ce8553..56605ae594 100644
--- a/src/app/conf/2026/schedule/[id]/page.tsx
+++ b/src/app/conf/2026/schedule/[id]/page.tsx
@@ -166,7 +166,7 @@ export default function SessionPage({ params }: SessionProps) {
+
+
Schedule not yet announced
+
+ >
+ )
+ }
// if the first day has less than 3 sessions, it's probably a "day zero" with extra events or workshops
const firstDayIsDayZero = Object.keys(firstDay).length < 3
const startIndex = firstDayIsDayZero ? 0 : 1
- const { getTimeMarker } = useCurrentTimeMarker()
-
return (
<>
diff --git a/src/pages/blog/2026-01-16-seeking-graphql-subject-matter-experts/Comparison_Method.gif b/src/pages/blog/2026-01-16-seeking-graphql-subject-matter-experts/Comparison_Method.gif
new file mode 100644
index 0000000000..f86362d7ed
Binary files /dev/null and b/src/pages/blog/2026-01-16-seeking-graphql-subject-matter-experts/Comparison_Method.gif differ
diff --git a/src/pages/blog/2026-01-16-seeking-graphql-subject-matter-experts/index.mdx b/src/pages/blog/2026-01-16-seeking-graphql-subject-matter-experts/index.mdx
new file mode 100644
index 0000000000..da566c78ec
--- /dev/null
+++ b/src/pages/blog/2026-01-16-seeking-graphql-subject-matter-experts/index.mdx
@@ -0,0 +1,69 @@
+---
+title: "Seeking SMEs for GraphQL Conf 2026"
+tags: ["blog"]
+date: 2026-01-16
+byline: Jem Gillam
+---
+## Help shape the 2026 GraphQLConf schedule!
+
+The GraphQLConf Programme Committee is looking for GraphQL Subject Matter Experts to help shape the talk schedule for 2026's GraphQLConf in California. As a volunteer in this role, you’ll spend time during the week of 9th - 16th February comparing talk submissions within your area of expertise, contributing to the creation of an engaging, informative, and impactful agenda.
+
+
+
+
An example of using the comparison method in Sessionize
+
+Ideal candidates are experienced GraphQL professionals with deep technical insight, industry awareness, and a passion for high-quality impartial content. We’re particularly keen on hearing from open source contributors and maintainers of leading GraphQL clients, servers, tooling and implementations as well as consumers of GraphQL APIs. Your input will directly influence the conference experience, ensuring attendees get a mix of cutting-edge topics, practical insights, and exciting discussions.
+
+If you fit one or more of these categories, apply today!
+
+* Engineers and leaders behind large GraphQL service providers
+* Industry experts with knowledge of GraphQL observability, telemetry and tracing
+* GraphQL working group members (including all subcommittees)
+* Maintainers and contributors to open source GraphQL projects
+* Lead developers for large multi-faceted GraphQL deployments
+* Polyglot practitioners with a broad knowledge base across different ways of developing and deploying GraphQL
+* GraphQL security experts
+* Role not open to GraphQL TSC members - you will have a different role in program selection
+
+import { Button } from "@/app/conf/_design-system/button"
+
+
+
+ Apply Now
+
+
+
+## Timeline
+
+**25th January: Call for Subject Matter Experts closes**
+1st - 6th February: You’ll be contacted to onboard you to our Sessionize system
+**9th - 16th February: This is your week! You help to review the talk submissions**
+17th February - 1st March: Program committee build the schedule, guided heavily by your ratings
+4th March: Schedule published
+6th - 7th May: GraphQL Conference in California, USA
+
+## The Talk Selection Process
+
+There are three groups involved in the talk selection process:
+
+* The Technical Steering Committee (TSC)
+* The Subject Matter Experts initiative (SMEs) ← This is YOU!
+* The Program Committee
+
+After the submission period ends, the TSC will have a short period of time to assess the viability of proposed talks and discount any which fall short of the selection criteria: talks which are vendor pitches or off-topic will be rejected at this early stage. The TSC will then have a week to use a star rating system to rate the talks based on their quality and originality, as well as their importance to the GraphQL ecosystem.
+
+In parallel, the SMEs will be given a selection of the talk proposals based on their subject matter areas. They will rate the talks using a comparison method, where groups of three talks are compared to each other. This will help identify which talks are the strongest fit for the conference based on subject relevance, originality, and potential audience engagement.
+
+After these two rating methods, each talk will have two scores: a star rating from the TSC based on conference fit, and a rating from the SMEs reflecting subject content. The Program Committee will then start with the most highly rated talks and work to produce the schedule. Whilst the aim is to produce a schedule reflecting the TSC and SME ratings, the Program Committee will also act as a curator: making sure there is a good balance of talks from across different industries and affiliations, as well as looking at speaker diversity in terms of demographics and a balance between experienced and new speakers.
+
+
+
+ Apply to be an SME
+
+
+
+_Looking for the call for speakers? [Find it here on Sessionize.](https://sessionize.com/graphqlconf-2026/)_