Side project · LEGO · 2026

BrickID.app

I built this because it sounded fun: a place to identify bricks, browse the official catalog, and poke at loose parts without opening five tabs. No client, no pitch deck, just curiosity and a lot of CSV files.

brickid.app
BrickID homepage

What I built

BrickID.app helps you figure out what a LEGO piece is and where it came from. Point your camera or upload a photo and get matches using AI image recognition, then enrich those hits with catalog data: set memberships, color variants, and links out to Rebrickable or BrickLink when you want prices.

There is also classic search and browse: sets by theme and year, part categories, minifigures, color reference pages, and detail views with structured data for search engines. A handful of collector tools (compare sets, value a lot, see what you can build from spare parts) sit alongside guides and a blog when I feel like writing.

A companion mobile experience rounds it out: explore the catalog, save favorites, and pull up building instructions when you are away from the desk. The whole thing syncs from a daily Rebrickable import so the numbers stay current without manual babysitting.

Scan & identify

Camera or upload, AI suggestions, then catalog context on the same screen.

Catalog at scale

Thousands of set and part pages generated from imported data, sitemaps included.

Collector tools

Set checker, comparisons, lot valuator, and “what can I build?” style helpers.

Mobile

Library, favorites, and manuals for when the pile of bricks is on the floor, not the monitor.

Stack

Laravel Livewire MariaDB Vite Swift Python

How I built it

Laravel handles the heavy lifting: scheduled catalog imports, slugged set pages, throttled search and instruction proxies, and cache-friendly responses for anonymous browsing. Livewire keeps the scan and tool flows interactive without a separate front-end app for every screen.

Because the dataset is huge, a lot of the work was pipeline design: download CSVs, normalize relationships, regenerate sitemaps, and make sure detail pages stay fast enough to feel instant. SEO was part of the fun too, each set gets its own title, description, and structured data, not a generic template with a number swapped in.

Production runs behind Cloudflare with sensible bot rules and edge caching on catalog HTML. It is a hobby project, but I still wanted it to survive a curious Googlebot or a Reddit link without falling over.

Let's work together

Got a project in mind?

Whether it's a custom web app, backend work, or technical consulting — let's talk about what you're building.

Available for work
Laravel Backend Development Technical Consulting