ilanvivanco
ilanvivanco.com
This site is where I leave my comfort zone and try new things, so I'm ready when a client needs them. It's on its second, very different version.
- My role
- Everything, for better and for worse.
- Stack
- Astro, TypeScript
(enlarge) The starting point
In 2020 I built it with Nuxt and Vue, outside my usual turf. It had a portfolio, a resume, animations, and even a blog in two languages. The blog had three posts, all hidden. I wanted to refresh the information, and took the chance to focus fully on accessibility and performance.
What we did
Starting with the limits
Before the design, I defined what's non-negotiable: 99+ on Lighthouse, 10 KB of my own JavaScript per page, and zero layout shift.
(enlarge) Not breaking what's there
Before deleting anything, I audited every URL on the old site. The old routes still respond with their redirects.
(enlarge) Researching with agents
For this portfolio, agents went through years of work in Gmail, Slack, Trello, GitHub, and Notion. The result was an inventory of 168 projects, and then we reviewed each case together. They corrected me too: I remembered a weekly import, and it was monthly.
(enlarge) Two models on opposite sides
Claude builds and Codex reviews, or the other way around. What one signs off on, the other argues with. The final call is mine, and QA applies to everyone: what doesn't pass doesn't get in.
(enlarge) By the numbers
- 99+ on Lighthouse, in all 4 categories
- 7.5 KB of my own JavaScript on the home page
- 0 accessibility errors with axe