This Portfolio
May 2026
TabajahStack
The portfolio site itself: a fast, animated Next.js hub that hosts every project on this list. Built on Next.js 16 and React 19 with a 3D animated background, engineered to load fast and rank well.
You're looking at it
This is a weird one to write, because the project is the site you're reading this on right now. Pretty meta. The moving ocean, the little boat, the 3D wheel you maybe just spun to get here? That's the project.
Here's my thinking: a portfolio is a strange thing to half-do. It's the one project whose entire job is to show you can build things. A plain list of links with "View on GitHub" next to each one does the job, sure, but it also kind of says "I did the bare minimum." I wanted the site itself to be exhibit A.
So I built an ocean
The home page has a wireframe ocean that actually moves, and there's a tiny sailboat riding on it. Getting that boat to sit on the water instead of floating awkwardly above it took way longer than I'd like to admit. The trick turned out to be simple: make the boat and the waves use the exact same math, so when a wave lifts, the boat lifts with it, tips into the swell, and leans into its turns.
The chronicle (where the rest of these live) is a 3D wheel you can drag, scroll, or arrow-key through. Each project is a card, and the milestones are the faded ones in between. Was it more work than a list? A lot more. That was kind of the point.
Fast first, fancy second
The one rule I gave myself: none of the fancy stuff is allowed to make the site slow or annoying. So the 3D loads lazily, it's still built to be quick and to rank well on search, and there's always a calm fallback. If you've got reduced motion on, or your device can't do WebGL, the ocean just steps aside and you get a clean, fast, totally readable site instead. Nobody's stuck watching a spinner because I wanted to play with shaders.
The stack, real quick
It's Next.js 16 and React 19, Tailwind for the styling, Three.js for all the 3D. Every project you can click, this one included, is just a little content file with an optional write-up attached, so adding the next one is mostly a matter of actually sitting down to write it. Which, hey, is what I'm doing right now. Hi.