his portfolio is running on a platform I built called Ketil's Farm. The premise is simple: one codebase, multiple characters, each with their own subdomain. arun.ketils.farm is me. thorfinn.ketils.farm is a Viking. The farm is a shared world, but each character has their own voice.
I built it because I was tired of portfolio sites that read like resumes. The format is deeply conservative — hero section, projects, experience, contact. Every developer's portfolio looks like a variation on the same template. I wanted to try something more expressive.
1The technical model
The implementation is a Next.js app with middleware that inspects the subdomain and routes to the right config. Each portfolio is a TypeScript config file that defines the content, colours, and copy. The UI components are shared; the personality isn't.
// portfolios/arun/config.ts
export const config: PortfolioConfig = {
id: "arun",
name: "Arun Negi",
bio: "Builder of things. Fan of good design...",
// each portfolio gets its own blog posts, talks, projects
}- Config file defines: name, bio, hero copy, projects, work, writing, talks.
- Shared UI components render the design system — same layout, different data.
- Subdomain middleware (or direct deployment) routes to the right config.
- Blog posts and talks live alongside the config — per-portfolio, not global.
2What I actually learned
The most interesting design challenge was building a system flexible enough to express different personalities without becoming a theming engine with infinite knobs. The constraint that helped most: each config can only set content and accent colours. Layout and spacing are fixed.
The best constraint is one that eliminates a whole category of bad decisions.
— the design system, implicitly~ a note on the design ~
The Woolly & Co. design system was built alongside this portfolio. Everything you see — the cream background, the barn-red accents, the chunky ink borders — comes from a single design language with 14 colour tokens and a strict set of component rules.
The second thing I learned: a portfolio site is never really about the portfolio. It's about the person. Whether it's a Viking who takes on impossible raids or a developer who writes 200-line scripts for folder hygiene, the character is the point.