Colophon

A little work. A little play.

This site brings together the systems I build, the games I make, and the curiosity behind both. Here’s how those pieces became a place of their own.

  • 18Projects documented
  • 10Games playable here
  • 25Pages built into HTML
  • 1Shared content system

A place for the whole picture

My work spans internal tools, AI workflows, client platforms, apps, and games. I wanted a place where all of that could sit together and still feel like me.

The home page gives you a way in. The project pages explain what I built and why. The About page connects the work to my story. You can skim, dig into a project, or stay for a game.

Room to read

Warm paper, blue accents, and generous space give the site its foundation. Instrument Serif brings character to the headings; Inter keeps the longer stories and small interface details easy to read.

The layout makes room for each kind of work. Apps appear in phone frames, websites in browser windows, and games through artwork, footage, and playable builds. The presentation follows the thing I made.

On desktop, selected projects move across the screen as you scroll. On touch devices and shorter screens, the same collection becomes a horizontal scroller with buttons. The work stays accessible in either format.

An invitation to play

The Game Boy in the hero is a small invitation to explore. Its shell is built with CSS, and its controls connect to the games inside. Trevor’s World turns the portfolio into rooms, discoveries, and things to collect.

Little Railway leads the home page’s project collection: a miniature workshop where you can lay tracks and build a world. The arcade brings together the wider collection, including Tilt World and Pulsekeeper.

Playable builds live alongside the stories behind them. Some are still in development, and the project pages say so. I like sharing work while there is still room for it to grow.

Piece by piece

The About page has a brick-built portrait that assembles as you read my story, then turns through the experience timeline. It starts with an empty base: a small visual connection to how I learned to build real systems and software.

The portrait uses Three.js through React Three Fiber. It prepares before you reach the section, while scroll position controls the build. Scrolling back takes it apart; a reduced-motion setting provides a still portrait.

Under the surface

The site runs on React, TypeScript, and Vite, with CSS Modules for component styling. GSAP and ScrollTrigger handle the scroll sequences, and Lenis coordinates smooth scrolling. Netlify hosts the site and handles the contact form.

Project content feeds the cards, filters, individual project pages, and metadata. The experience content supports the timelines and resume. Keeping those connections in one system makes updates easier to carry through the site.

Every public route is built into HTML, with a sitemap and a separate 404 page. Fonts are hosted locally, images have responsive sizes, and game stages load when you choose to play. The PDF resume comes from the on-site resume component.

Building with AI

Claude Code and Codex have been part of building and refining this site. I use them to implement ideas, explore options, and work through problems. The direction comes from what I want to make and how I want it to feel.

The original brief was a starting point. The site took shape through repeated decisions about the writing, artwork, interactions, and work worth featuring. Much of that happened after there was already a working version to react to.

Testing belongs in that process. A page can look right on its own and break after navigating from somewhere else. I use browser checks, small-screen reviews, and keyboard testing to check the experience beyond a screenshot.

A site I’ll keep using

The site has a shape now, but the work will keep changing. New projects will arrive, playable builds will develop, and older stories will need another edit. The numbers above come from the current collection so they can keep up.

I want this to remain a place I enjoy adding to: useful enough to explain my work, personal enough to recognize me in it, and playful enough to give you a reason to stay a little longer.

Tools and type

  • React
  • TypeScript
  • Vite
  • CSS Modules
  • React Router
  • GSAP
  • ScrollTrigger
  • Lenis
  • Three.js
  • React Three Fiber
  • Phaser
  • Netlify
  • Netlify Forms
  • Playwright
  • Instrument Serif
  • Inter
  • Claude Code
  • Codex