I built a website for keeping track of LEGO collections, complete with easy adding of set data, catalog search, and sharing.
I’ve kept track of my LEGO collection in Notion for years. Over time I’d entered a lot of data—80-plus sets—and built out a pretty extensive system of linked data. It worked, but it was slow and clunky, and every new set meant manually copying in the name, piece count, and everything else by hand from wherever I could find it on the internet. Notion also gave me very little say over how the collection looked or how I could share it.
Building it with Claude
My setup in Notion had been working fine, but I figured I could leverage Claude to build something bespoke that worked a lot better. I started by opening a Claude Chat session and describing what I wanted. I gave it access to my existing Notion setup as a reference and walked through the tool I had in mind: I’d type in a set number and the app would pull in its details and an image automatically, then let me fill additional details like who the set was mainly for (me, my wife Alyssa, or something we’d bought together) and the occasion (both the date and a note like “Christmas 2026 from Alyssa’s parents”). From there I wanted to browse, filter, and search the whole collection, keep track of which sets were still sealed, built, or in pieces, and share a public link so friends and family could check whether I already owned a set before picking one out for me.
I asked Claude to write the initial prompt for a Claude Code session to kick off the project. I didn’t provide too many technical details, but I did specify that I wanted to use the same Next.js and React stack I work in at my day job, deployed to my existing Netlify account. That way, if it got stuck or made a mess, I’d be able to dive in and clean things up myself instead of being stranded in something unfamiliar.
Before there was much code, I had Claude put some structure in place. We set up Playwright and Storybook for a proper test and component foundation, turned the conventions we’d settled on into a CLAUDE.md so Claude had a consistent rulebook to follow, and leaned on stylelint to keep the styling pulling from design tokens instead of hardcoded values. I also asked it to adhere to conventional commits and wire in some automated version bumping so the project could stay relatively organized. With that in place, Claude scaffolded the first version of the app.
From there it was a back-and-forth. Claude walked me through standing up the data layer on Firebase—I’d used it before, so it was the natural place to start—with Auth, Firestore, and storage for the set images.
Making it feel like mine
Being able to auto-fetch set info when adding a set was the piece I most wanted, since it’s the one thing Notion couldn’t do at all. It pulls the name, piece count, themes, and imagery from Brickset, with Rebrickable as a fallback—no more tedious copy-paste. To bring my collection over, I wrote a Notion import so I didn’t have to re-enter all 80-plus sets, and I added background removal (through rembg.com) so set images look clean and consistent no matter where they came from.
The app fills in the facts; I fill in what each set means to us—who it’s really for (me, Alyssa, or the two of us) and the occasion behind it.
I also put a lot of time into how it feels to use. The Home view is customizable, with drag-and-drop sections, light and dark mode, and smooth page changes through the View Transitions API. The public sharing I’d been picturing came together too, with per-collection visibility settings and share tokens so I can show just the collection I want and keep the rest private.
Where it stands
The result is a fast, purpose-built replacement for my old Notion setup—adding a set takes seconds instead of minutes, and all 80-plus of my sets came over cleanly.
It’s an ongoing project, and I keep coming back to refine it. I moved the whole backend off Firebase and onto Supabase—managing image storage had gotten tedious, and my wife was already using Supabase on a project she was building and had good things to say about it. I trimmed my early theme experiments down to a single clean look built around Radio Canada Big, the same typeface I use here on this site, and let the set images carry most of the visual weight. I also added a handful of set-card sizes so public links to collections read more like a curated gallery than a spreadsheet.
It’s still the tool I’m using to track my ever-growing collection. Check out my live collection or sign up and give it a try with your LEGO sets!