From b054c87d1f167083c1bc526ba9dfdd074daf7c90 Mon Sep 17 00:00:00 2001 From: samanyugoyal2010 Date: Sat, 5 Sep 2026 21:10:35 -0700 Subject: [PATCH 01/11] Add media library for social videos --- src/app/media/page.tsx | 26 ++++++ src/app/page.tsx | 2 + src/app/sitemap.ts | 1 + src/components/PageHero.tsx | 6 +- src/components/SiteFooter.tsx | 6 ++ src/components/media/MediaCard.tsx | 104 +++++++++++++++++++++ src/components/media/MediaSection.tsx | 55 +++++++++++ src/lib/links.ts | 2 + src/lib/media.ts | 128 ++++++++++++++++++++++++++ 9 files changed, 329 insertions(+), 1 deletion(-) create mode 100644 src/app/media/page.tsx create mode 100644 src/components/media/MediaCard.tsx create mode 100644 src/components/media/MediaSection.tsx create mode 100644 src/lib/media.ts diff --git a/src/app/media/page.tsx b/src/app/media/page.tsx new file mode 100644 index 0000000..2ad0e0f --- /dev/null +++ b/src/app/media/page.tsx @@ -0,0 +1,26 @@ +import type { Metadata } from "next"; +import { MediaGrid } from "@/components/media/MediaCard"; +import { PageHero, PageSection } from "@/components/PageHero"; +import { PageShell } from "@/components/PageShell"; +import { getMediaItems } from "@/lib/media"; + +export const metadata: Metadata = { + title: "Media", + description: + "Short lessons, student stories, and behind-the-scenes videos from CodeWithPurpose.", + alternates: { canonical: "/media/" }, +}; + +export default function MediaPage() { + return ( + + + + + + + ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx index 92dc4aa..7a52c9b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -8,6 +8,7 @@ import { GlobalReachSection } from "@/components/GlobalReachSection"; import { SecuritySection } from "@/components/SecuritySection"; import { QuoteSection } from "@/components/QuoteSection"; import { HowItWorksSection } from "@/components/HowItWorksSection"; +import { MediaSection } from "@/components/media/MediaSection"; import { FaqSection } from "@/components/FaqSection"; import { FinalCtaSection } from "@/components/FinalCtaSection"; import { SiteFooter } from "@/components/SiteFooter"; @@ -40,6 +41,7 @@ export default function Home() { + diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index 44e9b6a..7034243 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -22,6 +22,7 @@ export default function sitemap(): MetadataRoute.Sitemap { "/impact", "/contact", "/donate", + "/media", "/learn/ml", "/learn/vibecoding", "/learn/python", diff --git a/src/components/PageHero.tsx b/src/components/PageHero.tsx index ef65a23..0d20ca1 100644 --- a/src/components/PageHero.tsx +++ b/src/components/PageHero.tsx @@ -17,7 +17,11 @@ export function PageHero({ return (