skip to content
← all posts

designing this portfolio in the open

Jun 21, 2026 · 2 min read · meta

Portfolios are strange projects. The client is you, the deadline is imaginary, and the temptation to show off is infinite. This post is the working log of how this site got made, because the reasoning is the part portfolios usually hide.

The one sentence brief

Before any pixels: the goal is a site that feels premium through typography, motion, and restraint, not through visual complexity. Every feature request I gave myself got tested against that sentence. A cursor trail? Fails the sentence. A globe that knows your city and weather? Passes, barely, because it turns a static page into a small shared moment.

What earned its place

The timeline switcher. Work history is the most read section of any portfolio, and the least designed. The list view is for recruiters in a hurry. The horizontal view is for people who think in years. Same data, two mental models, one toggle.

Nerd mode. Design decisions are invisible when they work. Nerd mode makes them visible on demand: grids, spacing values, component names. It is the site reviewing itself. If you are reading this with it on, hello, you are my kind of person.

The footer game. Completely unnecessary, which is the point. It sits at the very end, after all the responsible content, like dessert.

What got cut

A hero video. Case study pages for NDA work, replaced by problem and impact cards, because a padlocked case study is just a wall with better typography. Parallax everything. A custom cursor, twice. Each cut hurt for about a day and improved the site permanently.

the em dash thing

There are no em dashes on this site. Not one. Partly it is a typographic taste: the em dash is a pause that reads like a designer clearing their throat. Partly it is a constraint game: if a sentence needs an em dash to work, the sentence can usually be two better sentences. There is a script in the codebase that fails the build if one sneaks in. Constraints you cannot cheat are the only ones that hold.

Performance as a design decision

The site budgets itself: system-adjacent fonts loaded locally, one small WebGL element, animations on transform and opacity only, everything below the fold lazy. A portfolio that says "I care about craft" and then ships eight megabytes of JavaScript is testifying against itself.

None of these decisions are precious. The site will change, sections will die, the game will get harder. That is the last decision worth sharing: a portfolio is not a monument, it is a draft you are willing to publish.