Building this 8-bit portfolio
Why I rebuilt my portfolio as an 8-bit game world, and what it took: a GSAP side-scroller, an XP system and a working terminal.
Update, 2026-09-29: the GSAP side-scroller described below has been retired. On desktop, /about now offers an opt-in Doom-style corridor instead, and the experience section always renders as plain, scannable content, with or without the game.
Most portfolios read like documents. I wanted mine to feel like a game.
The site started as a standard Next.js and headless CMS portfolio. The
rebuild replaced it with a self-contained 8-bit site: MDX content, a global
XP and achievement system, theme palettes, sound effects, and an in-page
terminal. Press Ctrl + backtick and type help.
The side-scroller
The About page is the part I'm proudest of. Instead of a timeline, the backstory runs as a side-scrolling level. GSAP's ScrollTrigger pins the stage and turns vertical scrolling into horizontal movement across four worlds. A pixel-art sprite walks in place with a two-frame animation, and it only animates while you scroll. Users with reduced motion get a vertical version with the same content.
The game layer
A React context tracks XP, levels and achievements, saved to localStorage. Visiting pages, finding the secret rice level and opening projects all award XP. It is a small system, and it gives visitors a reason to click around.
This entry is level 1-1.