Christopher L. Y. K. Rodrigues
Back to work

My son’s birthday site

Family project, 2026

I wanted my son’s birthday invite to be more fun than a group text, so I turned it into a space program. The invitation is Mission Control, the party date is the launch window, and RSVPs go on the flight manifest.

This one was pure creative playtime, so I went all in on the design. There’s a dithered pixel-art solar system built in Three.js, a mission story that flies you past each planet as you scroll, and decode animations on everything. Building it felt like being a kid again.

The whole site sits behind a launch code because it has photos of our son and our family’s plans, and I only want the people on the guest list to see them.

The plan is to build a new site for every one of his birthdays, so over the years they add up to a kind of memory book.

Built with

TanStack Start, Convex, Three.js

There’s no link for this one. The site is behind a launch code, so the clips and stills above are as close as it gets.

What I decided

I picked Convex and TanStack Start because I’d never used either
I already know Supabase and Next.js. A party site with nobody to disappoint was the right place to try two things I’d only heard about, and TanStack picking up momentum in the dev community was the tiebreak.
Guests get in with one shared launch code
Nobody should have to make an account to see a birthday party. One code printed on the invitation gets a whole family in, and I don’t end up collecting emails from every relative, which is a pain for them and something I’d then have to look after.
I moved the pixel art from 2D to 3D
I started with 2D pixel art and it looked flat, so I switched to real 3D geometry and dithered it down until it looks hand placed. I’d never done anything like that before, which was most of the appeal.