From fc14d37da865fedcef7acd9cfbf447b2db44672c Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Mon, 4 May 2026 22:59:24 +0200 Subject: [PATCH] docs: movie-corner implementation plan --- .../plans/2026-05-04-movie-corner.md | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 docs/superpowers/plans/2026-05-04-movie-corner.md diff --git a/docs/superpowers/plans/2026-05-04-movie-corner.md b/docs/superpowers/plans/2026-05-04-movie-corner.md new file mode 100644 index 0000000..1f8d2a6 --- /dev/null +++ b/docs/superpowers/plans/2026-05-04-movie-corner.md @@ -0,0 +1,199 @@ +# 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 ( +
+
+
+
+
+ +
+
🎬
+ +

+ Movie Corner +

+ +

+ 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 + +
+ +
+ {genres.map((genre, i) => ( + + {genre} + + ))} +
+
+
+ +
+