I rebuilt my personal site from the ground up — merging my old blog, CV, and landing page into a single unified experience with a theme system that refused to do what everyone else was doing. This post covers the design philosophy, the four themes I built, and what it means to finally have one place that actually feels like me.
For the past few years my online presence was split across three completely separate properties:
Every time I updated one, the others fell behind. The visual languages didn't match. Linking between them felt clunky. More importantly, none of them felt like a complete picture of who I am.
The solution was obvious in hindsight: consolidate everything into a single Next.js application with a shared design system, and take the opportunity to rethink the aesthetic from scratch.
When I started thinking about the aesthetic, the honest answer was: I wanted something that felt like a terminal. Dark, monospaced, precise. But "cyberpunk" has been so thoroughly strip-mined by vibe-coded clones that reaching for neon-on-black feels like a mistake now. You've seen it a hundred times. It signals nothing.
So I asked a different question: what does my terminal actually look like?
I use Neovim. I run on a Mac. My color schemes trend toward warm earth tones — rust, burnt orange, dim warm grays — not neon blue or electric green. The default theme on this site is called Dark Rust: a near-black background (#0c0908, almost brown-black), a #e05a30 rust-orange accent, and JetBrains Mono everywhere. No separate display font. No compromise with decorative typefaces. The whole thing reads like a Vim config that escaped into a browser.
The critical detail is that JetBrains Mono runs for everything in that theme — headings, body, metadata. Most designs treat monospace as a code-only font and switch to a humanist sans for reading. I didn't. The slight discomfort of reading long prose in a monospace face is part of the signal: this is a developer's site, not a marketing page.
That dark theme also has almost no border radius — 2px, effectively sharp corners. Cards feel like terminal panes, not rounded UI widgets.
The Light Cyber counterpart flips to a clean light gray (#f4f5f7) with an electric blue accent. The display font switches to Space Grotesk, the body to IBM Plex Mono. It reads like a macOS app — structured, high-contrast, nothing wasted. Same underlying component tree, completely different personality.
The theme system isn't just dark/light. It has four named modes, each with its own typographic identity, not just a different color palette:
| Theme | Accent | Display Font | Mood |
|---|---|---|---|
| Dark Rust | #e05a30 rust-orange | JetBrains Mono | Vim + terminal, warm dark |
| Light Cyber | #2347e6 electric blue | Space Grotesk | Mac-like, clean, structured |
| Sakura · Fuji | #e85a8a cherry pink + #3a4488 Fuji indigo | Shippori Mincho + Noto Sans JP | Tokyo, blossoms, quiet spring |
| FFX Pixel | #ffd54a gold + #4ad8e6 Zanarkand teal | Press Start 2P | Classic JRPG, hard pixel shadows |
Sakura · Fuji exists because I live in Ueno, Tokyo. Every spring I walk to Ueno Park and watch the cherry blossoms come in — the canopy turns pink over the pond, the crowds spread out blankets, and for a few days the whole city slows down around it. And every time I take the Shinkansen out of the city, Fuji appears in the window — sudden, enormous, a little surprising no matter how many times you've seen it. That combination of delicate and overwhelming is what this theme is trying to hold. Warm cream backgrounds, blush-pink accents, a deep indigo for Fuji's silhouette at dusk. The display font is Shippori Mincho, a Japanese-style serif that belongs to old signage and printed menus more than to any UI framework. It's the only theme that breaks entirely from the terminal metaphor, and that's intentional. Not every part of who I am is a developer.
FFX Pixel is the RPG theme. I like classic JRPGs, and the pixel aesthetic — hard drop-shadows, gold accents, sharp borders, chunky display fonts — carries a nostalgia I wanted to bring into the site. The theme takes visual reference from Final Fantasy X's art direction: deep navy backgrounds, gold and teal as the two accent colors, Press Start 2P for display text, zero border radius everywhere. It's deliberately a little absurd on a professional site, but that's part of the point. The site should show who I actually am, not just what I've shipped.
Typography is the part of this that I'm most satisfied with. Each theme is a complete typographic identity — the font changes tell you as much about the mood as the colors do. Press Start 2P says something completely different about a heading than Shippori Mincho does, even if the accent color were the same.
Homepage — The first screen is a pure signal-to-noise exercise. My name, title, location, and availability status. Then a brief introduction written in plain language, not recruiter-speak. Below that, quick links into the rest of the site presented as command-line entries. The goal is that anyone — a recruiter, a fellow developer, a potential collaborator — can orient themselves in under ten seconds.
Blog — Unchanged in purpose, significantly upgraded in presentation. Posts are listed with date, title, and a short description, styled consistently with the rest of the site. The individual post view renders Markdown with careful attention to hierarchy: code blocks, inline code, headers, and blockquotes all carry the theme palette without being distracting.
CV — The resume, rendered in the browser rather than a PDF, because I believe a CV page can show personality in a way a Word document never can. Company names are accent-colored. Position titles and bullet points follow a clear typographic scale. A PDF export is still available for anyone who needs it.
Journey — A simple reverse-chronological timeline of places I've been, each entry with a location, a date, and a photo or two. Nothing elaborate — just a record.
About — The part of the site I care most about getting right. It's not a bulleted summary of experience — it's a longer piece that covers where I came from, how I got here, and what actually interests me. The professional thread: teaching myself to code without a CS background, joining early-stage startups, building things that shipped to real users. But also the personal thread: the games I grew up on, the anime and dramas that shaped how I think about storytelling, what it's been like living in Tokyo. The goal was a page where someone could read it and come away feeling like they actually know who I am — not just what I've built.
The real design challenge wasn't picking a color or a font. It was making a homepage, a résumé, a travel photo gallery, a writing archive, and a personal story feel like they belong under one roof.
A theme system that is only colors fails at this. A theme system that assigns a full typographic identity — background, foreground, accent, font face, font weight, letter spacing, border radius, glow, shadow — creates coherence that survives wildly different content types. A timeline entry on Journey and a bullet on the CV look like they come from the same operating system even though the information they carry is completely different.
That's what I was trying to build. Not a personal site that looks cool, but one that holds together as a system across everything it needs to contain.
The site is live, and this redesign itself was done in close collaboration with Claude. Not as autocomplete, but as a genuine thinking partner: bouncing ideas, catching inconsistencies, pushing back on decisions that weren't fully justified.
The content here will grow. More posts, more Journey entries, probably some themes I haven't designed yet. The foundation is solid. For the first time in years, everything points to one place that actually feels complete.
If you're reading this, you're already there.