Repository navigation
[Website] Add a videos section - #10645
Merged
Merged
Conversation
Replaces ChilliCream TV with a public /videos section. Each episode is a Markdown file under website/content/videos/, and its example source links to a git repository.
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Release needs human confirmation that the seven example-source links documented as unavailable are accessible.
No open issues 🎉
What changed in this PR
Adds a public, Markdown-backed /videos section for ChilliCream TV, integrated with the website’s existing components and content pipelines.
Changes:
- Adds a searchable episode catalog, watch pages, and nine episodes.
- Extracts reusable YouTube poster and play-button components.
- Integrates navigation, structured data, sitemaps, image optimization, and LLM exports.
| File | Description |
|---|---|
| website/src/remark/rewriteMdLinks.mjs | Supports video content links. |
| website/src/image-optimization/remote.mjs | Collects frontmatter YouTube thumbnails. |
| website/src/icons/Video.tsx | Adds navigation video icon. |
| website/src/icons/PlayGlyph.tsx | Adds shared play glyph. |
| website/src/icons/ArrowLeft.tsx | Adds back-navigation icon. |
| website/src/helpers/videoStructuredData.ts | Generates video structured data. |
| website/src/helpers/videos.ts | Loads, validates, and organizes episodes. |
| website/src/design-system/Eyebrow.tsx | Adds amber color option. |
| website/src/design-system/Eyebrow.stories.tsx | Demonstrates amber styling. |
| website/src/components/YouTubeVideo.tsx | Uses shared poster component. |
| website/src/components/YouTubePoster.tsx | Renders optimized video posters. |
| website/src/components/YouTubePlayButton.tsx | Extracts shared play overlay. |
| website/src/components/videos/VideoStage.tsx | Displays featured and upcoming episodes. |
| website/src/components/videos/VideosHero.tsx | Adds catalog introduction and feature area. |
| website/src/components/videos/VideoPoster.tsx | Adds episode poster styling. |
| website/src/components/videos/VideoCatalog.tsx | Implements search and facet filtering. |
| website/src/components/videos/VideoCard.tsx | Renders episode cards. |
| website/src/components/videos/VideoByline.tsx | Displays presenter and publication date. |
| website/src/components/videos/MoreVideos.tsx | Displays related episodes. |
| website/src/components/VideoFacade.tsx | Reuses extracted play overlay. |
| website/src/components/header/navData.tsx | Adds Videos navigation link. |
| website/scripts/validate-structured-data.mjs | Includes video LLM exports in validation. |
| website/scripts/generate-llms-files.mjs | Generates video catalogs and context exports. |
| website/scripts/generate-git-metadata.mjs | Tracks video content metadata. |
| website/README.md | Documents episode authoring. |
| website/content/videos/2026-08-12-fusion-local-development.md | Adds Fusion development episode. |
| website/content/videos/2025-05-01-stateful-dataloader.md | Adds stateful DataLoader episode. |
| website/content/videos/2025-04-09-dataloader-second-level-cache.md | Adds second-level caching episode. |
| website/content/videos/2025-04-01-ef-core-projections.md | Adds EF Core projections episode. |
| website/content/videos/2025-03-24-connection-aggregations.md | Adds connection aggregations episode. |
| website/content/videos/2025-03-17-relative-cursors.md | Adds relative cursors episode. |
| website/content/videos/2025-03-05-dataloader-in-layered-architecture.md | Adds layered DataLoader episode. |
| website/content/videos/2025-02-27-greendonut-in-action.md | Adds GreenDonut.Data episode. |
| website/content/videos/2025-02-19-dataloader-explained.md | Adds DataLoader introduction episode. |
| website/app/videos/page.tsx | Adds video catalog route. |
| website/app/videos/[slug]/page.tsx | Adds static episode pages and metadata. |
| website/app/sitemap.ts | Includes video routes. |
| website/app/globals.css | Defines amber accent token. |
| website/AGENTS.md | Links video authoring guidance. |
Review effort: Balanced
Adds the video duration to the structured data, a share image for /videos, and Open Graph player details. Episode pages load the YouTube player without a click once the visitor has given marketing consent. YouTube ids are excluded from the spellcheck.
1 task
This was referenced Oct 25, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a public
/videossection that replaces ChilliCream TV. There is no backend and no sign-in: each episode is a Markdown file underwebsite/content/videos/, and its example source is a link to a git repository.video_start.VideoObjectwithduration,ItemList), a share image for/videos, Open Graph player tags, thellms.txtexport, git metadata, self-hosted posters, and Markdown link rewriting forcontent/videos/.PageSection,SectionHeading,Card,Eyebrow,TagList, the buttons, andMockWindowChrome. Adds anambercolor toEyebrow, and extractsYouTubePlayButtonandYouTubePosterfromVideoFacadeandYouTubeVideo.website/README.mdexplains how to add a video.cspell.jsonskips theyoutubeIdfield.Notes
ChilliCream/platform-examples(examples/HotChocolate/...). They return 404 until the examples are merged there.ChilliCream/fusion-demo-recommendations, which is already public. The second-level cache episode has no example source.Testing
npm run build, including thellmsvalidation, plustsc,eslint, andnpm run format:check.cspellonwebsite/content/videos.