Building a portfolio that feels like a journey
· Engineering · 4 min read
Why I turned my portfolio into an interactive trip around a black hole, how it’s built behind the scenes, and how I keep it alive without touching code.
Why not just a template?
Most developer portfolios look the same: a hero, a grid of cards, a contact form. They work, but they don’t say much about how you think. I wanted mine to be the proof, not just the list.
So I set a simple rule: if this site is going to represent me, it has to show the kind of work I enjoy most. That means real-time 3D, motion with intention, clean architecture, and attention to the details nobody asks for but everybody feels.
The idea: local time
The concept comes from Interstellar: near a black hole, time runs differently. The site is a slow trip around Gargantua. Every section is a stop on the way: my story, the technologies orbiting the star, my path laid out as a timeline, projects floating in an asteroid field, side missions stored in a tesseract library, and a space station at the end where you can reach me.
It’s a bold UI on purpose. But every animation has a job: guiding you to the next section, giving context, or making the content easier to read. Readability always wins over effects. If something got in the way of the text, it went out.
Under the hood
The project is split into three independent pieces, each with its own repository and deploy:
Gargantua, the public site. Built with Next.js, with a custom Three.js and GSAP engine for the 3D experience. Content is rendered on the server, so search engines can read everything even though the experience is animated. Mobile gets its own lighter version, because a black hole doesn’t belong in your phone’s battery.
Endurance, my private dashboard. From there I manage every text, project, skill, image and link. No code, no redeploys.
Lazarus, the backend, built on Supabase. It stores the content, applies the rules, and serves the whole site in a single, already-prepared response. It also turns that same content into my resume: every change I make is reflected in a fresh PDF, automatically
Media lives on Cloudflare R2, backups run every week on GitHub Actions, and the whole thing runs on free tiers. Low traffic, zero monthly cost, no compromises on quality.
Built to fail gracefully
A site like this depends on several services, so I designed it to survive when one of them doesn’t answer. If the backend goes down, the site serves a recent copy of its content. If the media storage fails, images fall back to local copies. The visitor should never notice.
Performance got the same treatment. The engine measures itself, adapts its quality to the device, and avoids work that doesn’t need to happen on every frame.
Managing it day to day
This is the part I enjoy the most. When I finish a project, I open Endurance, upload a cover, write a few lines, and hit save. The site updates itself in seconds and my resume regenerates in the background. A small panel tells me if everything is online, and backups are one click away.
It’s my own little control room, and it means the portfolio grows with me instead of getting stale.
The goal
This portfolio is a showcase, but it’s also a playground. It’s where I can push ideas a bit further than client work usually allows, and prove that an experimental interface can still be fast, accessible and easy to maintain.
If you made it this far, thanks for traveling with me. The station is always open.