Portfolio

About this site

As projects started accumulating, I kept thinking I should probably make a proper place for them instead of leaving them scattered across repos, screenshots, and half-finished notes.

That was what pushed me toward building this portfolio.

While looking at options, I landed on Next.js. It seemed like a good match for this kind of site because it offered more structure than the React setups I usually work with, especially for page-based organisation, routing, and deployment.

So this portfolio became its own small project. Not just a page about work, but an archive for work.

I did not want it to be overly styled or full of dramatic effects. That has never really been my preference. I like interfaces that are quiet, clear, and reliable. If something loads well, reads well, and works properly across different devices and environments, that matters more to me than visual noise.

That preference is probably close to both my design philosophy and my general approach to development: keep it simple, keep it useful, and avoid adding things that do not improve the experience.

It was also a useful excuse to build something outside a standard React-only workflow. Using Next.js made me think more carefully about page structure, hierarchy, and how the portfolio itself could reflect the way I like to organise systems.

things that feel slightly unusual

1. rendered on the server

Generated at 3/21/2026, 12:52:20 PM

export default function Page() {
  return <p>{new Date().toLocaleString()}</p>
}

2. no useEffect, still works

This content is rendered before it reaches the browser.

async function getData() {
  return fetch("/api").then(r => r.json())
}

3. file-based routing

This page exists because a file exists.

/app/portfolio/page.tsx → /portfolio