SMERESKI
  1. PROJECTS
  2. RESUME
  3. BLOG
  4. CONTACT

PROJECT

2026 · 10k LOC

smereski.com

The site you are reading — six genuinely different layouts behind one corner button, all built from the same typed data.

Next.js 16React 19Tailwind 4OKLCHTypeScriptLIVE

smereski.com is the portfolio you are reading right now, and it is built to be edited by adding data, not by writing pages. Every project card and every blog post is a typed object in one file; the routes map over the array and render themselves. Adding a card is appending to a list.

The part worth talking about is the theming. There are six visual identities — the default holographic transmission, the warm-black Hive command center, a green-on-black terminal, a stark brutalist register, a neon vector-tron grid, and a glitch-magazine editorial — and each one is a genuinely different layout, not a recolor. Pick one from the corner and the whole site re-skins; the choice is remembered between visits.

It works in two layers. A CSS token swap restyles the default surfaces for the lighter themes, and the richer ones ship a full set of bespoke React components per surface — home, project, blog index, blog post, resume, and the 404 — that take the same data and render a completely different structure. A small registry wires each theme's components in.

Next.js 16 with React 19 and Tailwind 4, an OKLCH palette throughout, the whole thing statically rendered and deployed on every push. Around ten thousand lines, and it was designed in a single session with an interviewing design tool that refused to write code until it had a strategy on one page.