diff --git a/apps/web/src/app/watch/easter/page.tsx b/apps/web/src/app/watch/easter/page.tsx
new file mode 100644
index 00000000..6cf2f1ec
--- /dev/null
+++ b/apps/web/src/app/watch/easter/page.tsx
@@ -0,0 +1,46 @@
+import type { Metadata } from "next"
+import { getLocale } from "@/lib/locale"
+import { getWatchExperience } from "@/lib/content"
+import { SectionRenderer, type Section } from "@/components/sections"
+import { ExperienceEmpty } from "@/components/ExperienceEmpty"
+import { ExperienceError } from "@/components/ExperienceError"
+
+export const metadata: Metadata = {
+ title: "Watch Easter",
+ description:
+ "Watch Easter content, livestreams, and featured videos on Forge.",
+ alternates: {
+ canonical: "/watch/easter",
+ },
+}
+
+export default async function EasterPage() {
+ const locale = await getLocale()
+ const result = await getWatchExperience(locale, { slug: "easter" })
+
+ if (result.error) {
+ return
+ }
+
+ const experience = result.data
+ if (!experience?.sections?.length) {
+ return
+ }
+
+ const sections = experience.sections.filter(
+ (s): s is Section => s !== null && s.__typename !== "Error",
+ )
+
+ if (sections.length === 0) {
+ return
+ }
+
+ return (
+
+ {sections.map((section, i) => {
+ const key = section.id ?? `section-${i}`
+ return
+ })}
+
+ )
+}