Execution Plan: Portfolio v1 + GitHub-First Workflow Summary Create a GitHub repository first, then build v1 on a dedicated feature branch with small regular commits. v1 scope: Pages: Home, Blog, About, Now No projects section/routes/content yet Hudovich-inspired minimalist look and spacing Geist + Geist Mono typography Hero intro with temporary avatar slot (later replaced) No hero CTA, footer contact only Plausible enabled, Giscus deferred Light default + dark toggle Netlify-ready Repository and Commit Workflow Initialize local repository in the project directory. Configure local git author (use a non-identifying identity if desired). Create initial commit on main with repo bootstrap files. Create GitHub repo (name TBD), set origin, push main. Create working branch codex/portfolio-v1 (prefix requirement satisfied). Implement in small commits (one logical unit per commit), pushing regularly to origin/codex/portfolio-v1. Final integration is merged back to main after validation. Planned Commit Checkpoints chore: initialize hugo site and base repository files feat: add base layout, metadata partials, and top navigation feat: implement home page structure and hero avatar slot feat: add blog list and blog single templates feat: add tags taxonomy pages and blog pagination feat: add about and now pages feat: implement hudovich-inspired typography and base visual system feat: add light/dark mode toggle with persisted preference chore: add plausible analytics integration chore: add netlify configuration and production polish docs: add content editing and deployment notes Public Interfaces / Content Contracts Routes / /blog/ /blog/<slug>/ /tags/<tag>/ /about/ /now/ /index.xml (RSS) Content Files content/blog/*.md content/about/_index.md content/now/_index.md Blog Front Matter Keys title date lastmod summary tags draft cover Hugo Params (hugo.toml) author.name author.email author.tagline analytics.plausible_domain theme.default_mode = "light" Implementation Steps Scaffold Hugo project and base config (hugo.toml) with blog tags, RSS, and pagination. Build shared template foundation in layouts/_default/baseof.html and partials for head, nav, footer, and theme script. Implement home template with: Intro text block Temporary avatar image block About snippet block Latest blog posts block Footer links with subtle contact Implement blog list and single templates plus tag archive templates. Implement about and now page templates. Add CSS system in assets/css/: Geist / Geist Mono usage Weight scale aligned to selected reference feel Minimalist spacing, borders, muted palette Mobile-first responsive behavior Add dark toggle JavaScript with localStorage persistence. Add conditional Plausible partial that loads only when domain param is set. Add netlify.toml for build, publish, and deploy behavior. Seed placeholder copy and posts for structural validation. Testing and Acceptance Criteria hugo --minify passes cleanly. All v1 routes render correctly and navigation links work. Blog pagination works across multiple pages. Tag pages generate for tagged posts. RSS endpoint is generated. Dark toggle persists across refresh and page changes. Plausible script appears only when configured. No projects route, navigation, or content artifacts exist. Layout is stable on mobile and desktop. Assumptions and Defaults Work happens on codex/portfolio-v1 with frequent small commits. Projects section is intentionally excluded from v1 code. Temporary avatar is used until a final image is provided. Contact remains footer-only, with no dedicated contact page in navigation.
Plans
Plan documents and references.