Conversation
There was a problem hiding this comment.
Pull request overview
Updates the Maintainer Month website for the 2026 rollout, including new site features (Ships page, ICS export), accessibility/responsiveness improvements, and year-based routing/archiving for prior schedules and events.
Changes:
- Adds a new “Ships” page fed by
content/ships/ships.jsonand includes supporting styles/tests. - Improves schedule UX (filtering, date grouping, empty states) and introduces build-time ICS generation.
- Rolls site copy/routing forward to 2026 while adding archived schedule routes and moving 2025 event content into
content/2025/events/.
Reviewed changes
Copilot reviewed 64 out of 104 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/ships.test.js | Validates ships JSON schema/constraints. |
| tests/events.test.js | Updates event parsing expectations (incl. timeDisplay). |
| tests/event-parsing.test.js | Adds coverage for TBD/all-day times and multi-day endDate parsing. |
| styles/styles.scss | Registers Ships component stylesheet. |
| styles/base.scss | Adds skip-link and screen-reader-only utilities; improves focus outline. |
| public/maintainer-month-2026.ics | Adds an ICS file placeholder in public/. |
| public/icons/twitch.js | Adds Twitch icon component. |
| public/icons/rocket.js | Adds Rocket icon for Ships nav entry. |
| public/icons/bluesky.js | Adds Bluesky icon component. |
| pages/ships.js | Adds /ships page that renders ships data. |
| pages/security-challenge.js | Updates Security Challenge page copy/meta tags for 2026. |
| pages/schedule/index.js | Updates schedule meta title and adds build-time ICS generation. |
| pages/schedule/[slug].js | Simplifies event detail <title> construction. |
| pages/partner-pack.js | Updates partner-pack messaging for 2026 partner outreach. |
| pages/news.js | Adds a “previous years” notice above existing news list. |
| pages/_app.js | Removes smoothscroll-polyfill usage. |
| pages/2025/schedule/index.js | Adds archived 2025 schedule index route. |
| pages/2025/schedule/[slug].js | Adds archived 2025 event detail routes. |
| pages/2024/schedule/index.js | Fixes 2024 schedule to load 2024 events. |
| pages/2024/schedule/[slug].js | Fixes 2024 schedule paths and slug parsing to use 2024 events. |
| pages/2024/index.js | Fixes 2024 home schedule link and data sources. |
| pages/2023/schedule/index.js | Fixes 2023 schedule to load 2023 events. |
| pages/2023/schedule/[slug].js | Fixes 2023 schedule paths and slug parsing to use 2023 events. |
| pages/2023/index.js | Fixes 2023 home schedule link and data sources. |
| pages/2022/schedule/index.js | Simplifies 2022 schedule <title> construction. |
| pages/2022/schedule/[slug].js | Simplifies 2022 event detail <title> construction. |
| package.json | Adds ics + cross-env, updates start for static output. |
| package-lock.json | Locks new dependencies for ICS/build script changes. |
| next.config.js | Sets outputFileTracingRoot for workspace/root warnings. |
| content/ships/ships.json | Adds curated “Ships” data entries. |
| content/partner-pack/offers/jsconf.md | Updates partner offer headline year. |
| content/partner-pack/offers/bootdev.md | Updates partner offer link year. |
| content/partner-pack/index.md | Updates partner pack title/meta for 2026. |
| content/home/5-events.md | Updates “Upcoming events” header year. |
| content/home/2-about.md | Updates theme placeholder copy for 2026. |
| content/home/1-hero.md | Updates hero date to May 2026. |
| content/events/2025-05-30-Effection.md | Removes old event file from prior location (archival move). |
| content/commons.json | Updates global literals (2026 copy, new nav label, ICS strings, all-day/TBD strings). |
| content/2025/events/pycon-us-2025.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-30-effection.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-30-Libre-Sign.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-28-Deskree.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-27-CRA.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-26-Cultivating-Design.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-24-FSF-40-Chennai.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-24-FOSS-Meetup-Lucknow.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-24-FOSS-Meetup-Bengaluru.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-23-nuxt-ai.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-23-Build-CLI.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-21-kotlinconf.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-21-OSI.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-21-NGINX.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-19-Swift-Craft.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-19-05F5.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-17-FOSS-City-Meetup-Kanpur.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-16-supermemoryai.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-16-Querido-Diario.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-16-Open-Source-European-Commission.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-16-Cyber-Security.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-14-CloudFoundry.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-13-RustWeek.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-10-FOSS-United-Hyderabad.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-09-whopays.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-09-convex.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-09-Localization.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-09-Diciotech.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-07-PyTorch.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-06-OS-Pledge.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-06-Licensing-SBOMs.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-06-Innersource-China.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-06-GOSIM-AI.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-02-typewind.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-02-NPCI.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-02-Cookie-Cutter.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-01-OpenSearch.md | Adds archived 2025 event markdown. |
| content/2025/events/2025-05-01-OpenPath.md | Adds archived 2025 event markdown. |
| components/ships/ships.scss | Adds Ships page styling. |
| components/ships/Ships.jsx | Adds Ships list UI. |
| components/partner-pack/offers/Offers.jsx | Adds lint suppressions for <img> usage. |
| components/library-links/LibraryLinks.jsx | Adds empty-state rendering for library links. |
| components/layout/layout.scss | Prevents horizontal overflow and adjusts main focus styling. |
| components/layout/Layout.jsx | Adds skip-to-content link and ARIA landmark attributes. |
| components/home/hero/hero.scss | Fixes hero overflow/spacing for responsive layouts. |
| components/home/get-involved/ExampleCard.jsx | Fixes heading hierarchy (h2 -> h3). |
| components/home/events/useIncomingEvents.js | Keeps multi-day events “upcoming” until endDate passes. |
| components/home/events/Events.jsx | Removes unused Council import and commented render. |
| components/home/council/Council.jsx | Updates advisory council title year. |
| components/home/about/About.jsx | Updates theme heading/copy for 2026. |
| components/header/Header.jsx | Adds Ships nav item and improves nav accessibility labeling. |
| components/footer/footer.scss | Enables wrapping/centering for social icons row. |
| components/footer/Footer.jsx | Adds Twitch/Bluesky footer links and contentinfo landmark. |
| components/events-list/events-list.scss | Adds sticky filters, empty states, and grid/layout fixes. |
| components/events-list/EventsList.jsx | Implements filtering + date grouping + ICS download CTA. |
| components/event-detail/event-detail.scss | Adds wrapper styling for linked titles. |
| components/event-detail/EventDetail.jsx | Adds multi-day date chip + timeDisplay support + heading wrapper. |
| components/date-time-chip/DateTimeChip.jsx | Adds TBD/all-day rendering and uses timeDisplay. |
| components/chip/chip.scss | Prevents chip overflow with ellipsis. |
| common/routes.js | Adds /ships route constant. |
| api/events.js | Adds all-day/TBD parsing + timeDisplay; supports endDate. |
| api/calendar.js | Adds ICS generation utility. |
| README.md | Updates year + improves local dev/build instructions. |
| Participation.md | Updates year/theme section headings. |
| CONTRIBUTING.md | Updates examples and documents optional times + endDate behavior. |
| .github/ISSUE_TEMPLATE/add-to-calendar.yml | Makes times optional and adds workshop event type. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
haven't taken a deep look yet, but I think some of the issues are currently being addressed by contributors in other PRs with @AndreaGriffiths11 helping them. Can we make sure we don't duplicate work there? Would love to merge in external contributions |
- Roll over all 2025 references to 2026 (theme TBD) - Fix hero section text/button overlap on mobile (github#259) - Fix horizontal scroll on medium screens (github#250) - Add responsive breakpoints for schedule page - Clarify README: use npm run dev, add Node version requirement (github#272, github#297) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Change overflow-x: hidden to overflow-x: clip on layout__content so position: sticky on the header works correctly (hidden creates an implicit scroll container that breaks sticky positioning) - Add box-sizing: border-box to event cards for consistent sizing - Make markdown-rendered <p> tags inline inside line-clamped text so -webkit-line-clamp works correctly with rendered descriptions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- api/events.js: Add explicit handling for 'TBD' and 'all-day' time
values in frontmatter. Add timeDisplay field ('specific', 'tbd',
'all-day') to formatEventDateTime output.
- DateTimeChip: Show clean 'TBD' or 'All Day' label without PT
conversion row when times aren't specific.
- EventDetail: Show date range chip for multi-day events.
- EventsList: Pass timeDisplay prop; use dash separator in date range.
- useIncomingEvents: Multi-day events remain 'upcoming' until endDate
passes.
- CONTRIBUTING.md: Document optional UTCStartTime/UTCEndTime and
endDate fields.
- commons.json: Add 'message:all-day' i18n literal.
Fixes github#245, fixes github#242
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ue template - Move 38 event files from content/events/ to content/2025/events/ - Create pages/2025/schedule/ routing for archived 2025 events - Fix bug: pages/2023/ and pages/2024/ incorrectly referenced 2022 events - Add iCalendar/ICS feed generation at build time (github#88) - Add skip-to-content link, ARIA landmarks, heading hierarchy, focus styles (github#64) - Update issue template: times optional for TBD/all-day, add workshop type - Empty content/events/ ready for 2026 submissions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add cross-env for Windows-compatible NODE_ENV in build script (github#272) - Footer social icons now wrap on narrow screens instead of overflowing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This reverts commit f672c98.
- Schedule page shows 'coming soon' message when no events exist - Library page shows empty state message when no resources - Theme changed to 'Coming Soon' placeholder until 2026 theme is decided - Removed Council import from homepage (no council for 2026) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
New /ships page showing curated GitHub changelog entries relevant to maintainers. Data is managed via content/ships/ships.json. Includes 9 initial ships (Issues, Pull Requests, Copilot, Repository Management). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Ships tests: validate required fields, date format, URL format, description length - Event parsing tests: TBD defaults, all-day handling, multi-day endDate, validation errors Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add box-sizing, overflow-wrap, word-break for long titles - Add min-width: 0 on cards to prevent grid blowout Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove yarn.lock (project uses npm) - Remove smoothscroll-polyfill (unnecessary in modern browsers) - Fix next.config.js: add outputFileTracingRoot - Fix package.json: start script uses serve for static export - Fix all title tag warnings across 11 pages (template literals) - Fix img lint warnings in Offers.jsx - Fix archived year pages (2023/2024) to reference correct content - Update CONTRIBUTING.md example to 2026 - Add previous-years note to news page Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix calendar API timezone handling - Fix events API error handling - Fix EventsList rendering edge case - Update Ships component layout - Update commons.json and partner-pack content - Add test coverage for event edge cases - Update dependencies Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
a9bafe7 to
4ca641a
Compare
- Use getEvents() in schedule/[slug].js instead of raw fs.readdirSync (getEvents already handles missing directories gracefully) - Add serve as pinned devDependency instead of npx Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update meta:title and page:date from 2025 to 2026. These were missed in the initial year rollover and caused the page header and meta tags to still display 2025. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
abbycabs
left a comment
There was a problem hiding this comment.
A few things were agressively updated to 2026 that probably shouldn't be!
| headline: "Unlock early bird pricing for JSConf North America 2026!" | ||
| description: "Maintainers can access a special discounted ticket rate — available in limited quantities for Maintainer Month." | ||
| secondaryCta: "Use code: JSCONF25GITMAIN" | ||
| secondaryCta: "Use code: JSCONF26GITMAIN" |
There was a problem hiding this comment.
| secondaryCta: "Use code: JSCONF26GITMAIN" | |
| secondaryCta: "Use code: JSCONF25GITMAIN" |
| export async function getStaticProps() { | ||
| const hero = getDataFromMD('content/2022/home/1-hero.md') | ||
| const about = getDataFromMD('content/2022/home/2-about.md') | ||
| const hero = getDataFromMD('content/2023/home/1-hero.md') |
There was a problem hiding this comment.
if we're editing the 2024 pages, these should probably point to /2024 (not 2023)
| const content_end = marked(` | ||
| ### Thank you for your interest! | ||
| The 2025 Security Challenge submission period has ended. Form submissions closed on May 31, 2025. We are currently reviewing submissions and will be distributing vouchers to eligible participants in June 2025. | ||
| The 2026 Security Challenge submission period has ended. Form submissions closed on May 31, 2026. We are currently reviewing submissions and will be distributing vouchers to eligible participants in June 2026. |
There was a problem hiding this comment.
I'd rather leave this page untouched (with 2025) since we're removing it from the site anyways. may cause confusion on whether or not we're offering it again.
Co-authored-by: Abby Cabunoc Mayes <abbycabs@github.com>
Maintainer Month 2026 Site Update
Comprehensive refresh of the Maintainer Month site for 2026. Addresses 9 of 12 open issues, adds new features, and cleans up the codebase.
Year rollover
content/2025/events/pages/2025/schedule/routing for archived eventsIssues addressed
yarnon Windows 11 #272 / Improvements to README #297 — Improved README (npm run dev, Node version, Windows cross-env fix)Deferred to community PRs
New features
/ships) — Curated GitHub changelog entries relevant to maintainers, managed viacontent/ships/ships.jsonSite cleanup
yarn.lock(project uses npm)smoothscroll-polyfill(unnecessary in modern browsers)next.config.jsworkspace root warningnpm startto work with static exportNot addressed
Testing
Closes #259, closes #250, closes #272, closes #297, closes #245, closes #242, closes #87, closes #88, closes #64