From 365002d267eefeaeffbe54ccf4765523ca627a38 Mon Sep 17 00:00:00 2001 From: Sajja Easwar Sai Date: Sun, 8 Feb 2026 01:16:41 +0530 Subject: [PATCH 1/2] chore: update sitemap with missing static routes --- src/app/sitemap.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index bbb8575..b86c418 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -42,6 +42,48 @@ export default function sitemap(): MetadataRoute.Sitemap { changeFrequency: 'weekly' as const, priority: 0.8, }, + { + url: 'https://2026.pyconfhyd.org/cfp-guidelines', + lastModified: new Date(), + changeFrequency: 'weekly' as const, + priority: 0.8, + }, + { + url: 'https://2026.pyconfhyd.org/convince-my-boss', + lastModified: new Date(), + changeFrequency: 'weekly' as const, + priority: 0.6, + }, + { + url: 'https://2026.pyconfhyd.org/job-board', + lastModified: new Date(), + changeFrequency: 'daily' as const, + priority: 0.9, + }, + { + url: 'https://2026.pyconfhyd.org/job-board-rules-guidelines', + lastModified: new Date(), + changeFrequency: 'weekly' as const, + priority: 0.5, + }, + { + url: 'https://2026.pyconfhyd.org/our-team', + lastModified: new Date(), + changeFrequency: 'monthly' as const, + priority: 0.7, + }, + { + url: 'https://2026.pyconfhyd.org/tickets', + lastModified: new Date(), + changeFrequency: 'daily' as const, + priority: 1.0, + }, + { + url: 'https://2026.pyconfhyd.org/welcome-guide', + lastModified: new Date(), + changeFrequency: 'weekly' as const, + priority: 0.8, + }, ]; // sitemap for speaker pages From 542eebc9003aa26b32b18569257222985a5669a3 Mon Sep 17 00:00:00 2001 From: Sajja Easwar Sai Date: Sun, 8 Feb 2026 01:47:28 +0530 Subject: [PATCH 2/2] feat: integrate feature flags into sitemap generation --- src/app/sitemap.ts | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index b86c418..e473f39 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -1,11 +1,13 @@ import type { MetadataRoute } from 'next'; import { SPEAKERS } from '@/speakers'; +import { isFeatureEnabled } from '@/config/featureFlags'; export const dynamic = 'force-static'; export const revalidate = 60; // Revalidate every 60 seconds +// Define all static pages with their optional feature flag export default function sitemap(): MetadataRoute.Sitemap { - const staticPages = [ + const allStaticPages = [ { url: 'https://2026.pyconfhyd.org/', lastModified: new Date(), @@ -17,30 +19,35 @@ export default function sitemap(): MetadataRoute.Sitemap { lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 0.7, + featureFlag: 'COC_REPORTING_GUIDE', }, { url: 'https://2026.pyconfhyd.org/schedule', lastModified: new Date(), changeFrequency: 'daily' as const, priority: 0.9, + featureFlag: 'SCHEDULE', }, { url: 'https://2026.pyconfhyd.org/travel', lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 0.8, + featureFlag: 'TRAVEL', }, { url: 'https://2026.pyconfhyd.org/faq', lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 0.9, + featureFlag: 'FAQ', }, { url: 'https://2026.pyconfhyd.org/reporting-guide', lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 0.8, + featureFlag: 'COC_REPORTING_GUIDE', }, { url: 'https://2026.pyconfhyd.org/cfp-guidelines', @@ -59,40 +66,53 @@ export default function sitemap(): MetadataRoute.Sitemap { lastModified: new Date(), changeFrequency: 'daily' as const, priority: 0.9, + featureFlag: 'JOB_BOARD', }, { url: 'https://2026.pyconfhyd.org/job-board-rules-guidelines', lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 0.5, + featureFlag: 'JOB_BOARD', }, { url: 'https://2026.pyconfhyd.org/our-team', lastModified: new Date(), changeFrequency: 'monthly' as const, priority: 0.7, + featureFlag: 'OUR_TEAM', }, { url: 'https://2026.pyconfhyd.org/tickets', lastModified: new Date(), changeFrequency: 'daily' as const, priority: 1.0, + featureFlag: 'TICKETS', }, { url: 'https://2026.pyconfhyd.org/welcome-guide', lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 0.8, + featureFlag: 'WELCOME_GUIDE', }, ]; + const staticPages = allStaticPages + .filter( + (page) => !page.featureFlag || isFeatureEnabled(page.featureFlag) + ) + .map(({ featureFlag, ...page }) => page); + // sitemap for speaker pages - const speakerPages = SPEAKERS.map((speaker) => ({ - url: `https://2026.pyconfhyd.org/speakers/${speaker.slug}`, - lastModified: new Date(), - changeFrequency: 'weekly' as const, - priority: 0.7, - })); + const speakerPages = isFeatureEnabled('SPEAKERS_PAGE') + ? SPEAKERS.map((speaker) => ({ + url: `https://2026.pyconfhyd.org/speakers/${speaker.slug}`, + lastModified: new Date(), + changeFrequency: 'weekly' as const, + priority: 0.7, + })) + : []; return [...staticPages, ...speakerPages]; }