# Movie Corner Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Add a `/movie-corner` page with a cinematic hero section and a full-height iframe embedding the external movie reviews site. **Architecture:** Two-task implementation — navbar link first, then the page itself. The page is a single static component: a fixed-height hero section followed by an iframe that grows to fill all remaining viewport height via flexbox. **Tech Stack:** Next.js 15 (App Router), Tailwind CSS v4, TypeScript --- ## File Map | File | Action | Responsibility | |---|---|---| | `components/navbar.tsx` | Modify | Add "Movie Corner" nav link | | `app/movie-corner/page.tsx` | Create | Full page: metadata + hero + iframe | --- ### Task 1: Add "Movie Corner" to the navbar **Files:** - Modify: `components/navbar.tsx` The `navLinks` array currently has: Home, K-Suite, Projects, Blog, About. Insert Movie Corner between Projects and Blog. - [ ] **Step 1: Edit `components/navbar.tsx`** Find this block: ```ts const navLinks = [ { href: "/", label: "Home" }, { href: "/k-suite", label: "K-Suite" }, { href: "/projects", label: "Projects" }, { href: "https://blog.gabrielkaszewski.dev/", label: "Blog", external: true, }, { href: "/about", label: "About" }, ]; ``` Replace with: ```ts const navLinks = [ { href: "/", label: "Home" }, { href: "/k-suite", label: "K-Suite" }, { href: "/projects", label: "Projects" }, { href: "/movie-corner", label: "Movie Corner" }, { href: "https://blog.gabrielkaszewski.dev/", label: "Blog", external: true, }, { href: "/about", label: "About" }, ]; ``` - [ ] **Step 2: Type-check** ```bash npx tsc --noEmit ``` Expected: no errors. - [ ] **Step 3: Commit** ```bash git add components/navbar.tsx git commit -m "feat: add Movie Corner to navbar" ``` --- ### Task 2: Create the Movie Corner page **Files:** - Create: `app/movie-corner/page.tsx` The page is a `min-h-screen flex flex-col` container with `pt-20 gravity-body` (matching all other pages). The hero takes its natural height; the iframe section has `flex-1` so it fills the rest. - [ ] **Step 1: Create `app/movie-corner/page.tsx`** ```tsx import { Metadata } from "next"; export const metadata: Metadata = { title: "Movie Corner | Gabriel Kaszewski", description: "My personal cinema journal — what I watch and how I feel about it.", }; const MOVIE_REVIEWS_URL = "https://movies.gabrielkaszewski.dev/users/5d253151-0f6a-4246-9bc5-cb0b5869731b"; const genres = ["Sci-Fi", "Drama", "Family"]; export default function MovieCornerPage() { return (
What I watch, what I think. A personal cinema journal.
“I'd only give one piece of advice to anyone marrying. We're all quite similar in the end. We all get old and tell the same tales too many times. But try and marry someone kind.”
— About Time, 2013