Prototype the page first
The site started as one static index.html in the resume repository — no
framework, no build. That made content and design cheap to change, and the
Next.js app later only had to reproduce a page that was already agreed.
The concept
Section titled “The concept”The resume tells a career that climbs the stack from the bottom: cable and satellite installs, rural mail delivery, school IT fleets, teaching React, product work, then multi-tenant platforms and AI. The page turns that into seven layers, L01 to L07, with a sticky 3D stack that lifts the layer you’re reading.
What changed after the first draft — and why
Section titled “What changed after the first draft — and why”Iterating on a static page surfaced decisions worth copying:
| Change | Reason |
|---|---|
| Removed every email address | A public page with an address invites spam. Contact goes through a form and LinkedIn instead. |
| Removed the city and the local-time clock | The owner didn’t want the site to say where they’re based. |
| Toned down one industry | The page leaned hard on one employer’s domain; it now leads with platform engineering. |
| Replaced a novelty demo with real side projects | Chosen from the owner’s own project folders, after checking each project’s own README for facts. |
| Added an npm section | Five published packages, versions read from the npm registry. |
| Added an icon per career layer | Small inline SVGs, animated only while that layer is active. |
| Removed fade-in-on-scroll | The owner disliked it. Kept the scroll-linked stack and counters, which carry meaning. |
| Added a holiday variant | Snow, a string of lights, an evergreen palette. |
Previewing locally
Section titled “Previewing locally”A static page needs any static server. The quickest:
python3 -m http.server 4173 --bind 127.0.0.1 --directory siteBinding to 127.0.0.1 keeps it off your network.