Jun 29, 2026
A portfolio that is not vibe-coded
Most developer portfolios have started to look like the same site. A dark hero with a gradient, a glassy card or two, a generic sans-serif, a sprinkle of emoji, and a greeting that opens with Hi, I’m. Quick to make, easy to forget. I have built versions of that site before. This time I wanted the opposite: something that reads like it was made on purpose, by a person, and still loads instantly.
So I set this site like the contents page of a journal instead of a dashboard.
The constraints came first
Before I wrote any code, I wrote down a few rules and then refused to break them:
- No gradients, no glow, no glass, no blur. Solid color only.
- One accent, a deep cobalt, used structurally rather than as decoration.
- A warm paper background, never pure white.
- Type carries the personality. Whitespace is generous and on purpose.
Constraints like these are what keep a site from drifting back into everyone else’s template. Take the easy decorative tricks off the table and you have no choice but to make the type, the spacing, and the structure do the actual work. That is the part I enjoy.
The stack is boring on purpose
The site is built with Astro. It ships zero JavaScript by default, so most pages are pure HTML and CSS. The styling is vanilla CSS with custom properties as design tokens. No utility-class soup, no component library, no runtime to babysit.
Fonts are self-hosted instead of pulled from a CDN, so there is no third-party call and no layout shift while the page settles. The whole thing compiles to static output that I can leave alone for years and still trust to work.
Where the character lives
The signature is the homepage. A masthead and a typographic contents list, each entry a title and a one-line blurb, turning cobalt on hover. Carried across every page is a small mono label and a thin cobalt rule, a quiet wayfinding device that tells you where you are without a nav bar shouting at you.
None of this is novel technology. That is the point. The real work was the editing, deciding what to leave out. A site that ships almost no JavaScript and says one thing clearly will outlast a site that says nothing loudly.