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.

    diff --git a/src/app/conf/2026/components/get-your-ticket/ticket-periods.tsx b/src/app/conf/2026/components/get-your-ticket/ticket-periods.tsx index 285c6008a5..0e04658aff 100644 --- a/src/app/conf/2026/components/get-your-ticket/ticket-periods.tsx +++ b/src/app/conf/2026/components/get-your-ticket/ticket-periods.tsx @@ -16,6 +16,8 @@ export function TicketPeriods() { return ( <> + TBD + {/* LATE_END_DATE} /> +*/} ) } diff --git a/src/app/conf/2026/components/og-images/simple-opengraph-image.tsx b/src/app/conf/2026/components/og-images/simple-opengraph-image.tsx index d16ba527a7..5d74733fc1 100644 --- a/src/app/conf/2026/components/og-images/simple-opengraph-image.tsx +++ b/src/app/conf/2026/components/og-images/simple-opengraph-image.tsx @@ -27,7 +27,7 @@ export async function SimpleOpengraphImage({ pageTitle={pageTitle} date="May 6-7" year="2026" - location="Amsterdam, Netherlands" + location="Menlo Park, California" /> ), { diff --git a/src/app/conf/2026/components/register-section/index.tsx b/src/app/conf/2026/components/register-section/index.tsx index 148e4c3fe5..fdf0da7e58 100644 --- a/src/app/conf/2026/components/register-section/index.tsx +++ b/src/app/conf/2026/components/register-section/index.tsx @@ -62,6 +62,7 @@ export function RegisterSection({ className, ...props }: RegisterSectionProps) { graphql_events@linuxfoundation.org

    + {/* TODO + */}

    Media

    diff --git a/src/app/conf/2026/components/register-today/index.tsx b/src/app/conf/2026/components/register-today/index.tsx index dfff258e78..c2fefe6f39 100644 --- a/src/app/conf/2026/components/register-today/index.tsx +++ b/src/app/conf/2026/components/register-today/index.tsx @@ -29,7 +29,7 @@ export function RegisterToday({ className }: RegisterTodayProps) {

    - 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) { -

    diff --git a/src/app/conf/2026/components/venue/index.tsx b/src/app/conf/2026/components/venue/index.tsx index 51743e35df..4658257410 100644 --- a/src/app/conf/2026/components/venue/index.tsx +++ b/src/app/conf/2026/components/venue/index.tsx @@ -32,6 +32,7 @@ export function Venue(props: VenueProps) { }} />
    + {/*

    A place of innovation & creation

    @@ -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

    + {/* + */}
    + {/*

    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) {
    @@ -43,7 +51,7 @@ export default function Page() { + + +## 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. + +
    + +
    + +_Looking for the call for speakers? [Find it here on Sessionize.](https://sessionize.com/graphqlconf-2026/)_