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 Monotypography- 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
mainwith repo bootstrap files. - Create GitHub repo (name TBD), set
origin, pushmain. - 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
mainafter validation.
Planned Commit Checkpoints
chore: initialize hugo site and base repository filesfeat: add base layout, metadata partials, and top navigationfeat: implement home page structure and hero avatar slotfeat: add blog list and blog single templatesfeat: add tags taxonomy pages and blog paginationfeat: add about and now pagesfeat: implement hudovich-inspired typography and base visual systemfeat: add light/dark mode toggle with persisted preferencechore: add plausible analytics integrationchore: add netlify configuration and production polishdocs: 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/*.mdcontent/about/_index.mdcontent/now/_index.md
Blog Front Matter Keys
titledatelastmodsummarytagsdraftcover
Hugo Params (hugo.toml)
author.nameauthor.emailauthor.taglineanalytics.plausible_domaintheme.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.htmland 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
localStoragepersistence. - Add conditional Plausible partial that loads only when domain param is set.
- Add
netlify.tomlfor build, publish, and deploy behavior. - Seed placeholder copy and posts for structural validation.
Testing and Acceptance Criteria
hugo --minifypasses 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-v1with 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.