Pokemon Card Gallery

My kids trade Pokemon cards at school, which sometimes leads to the obvious question: is this shiny card worth fifty cents or twenty euros?

I wanted a rough answer without checking every card by hand, so I vibecoded a small Pokemon Card Gallery with OpenCode and GPT-5.5. It shows who owns each card, its current Cardmarket price, a little price history, and whether the value went up or down recently.

This is definitely not a proper valuation. The API can’t see scratches, bent corners, or the effects of living unprotected in a school bag. It just gives us a useful ballpark figure before cards get traded on the playground.

The Pokemon Card Gallery showing card prices, owners, and price trends

It was still a spec-driven project, even if most of the code came out of AI-assisted sessions. I wrote a short product spec and technical spec first: what the gallery should do, what it shouldn’t do, how the data should flow, and how it would run. That kept OpenCode and GPT-5.5 focused. No accounts, admin panel, or buying and selling. Just the gallery.

The visual direction came from the Nintendo.com design from 2001. Underneath, it’s a small Next.js and TypeScript app. The cards live in YAML, prices come from the Pokemon TCG API on RapidAPI, and SQLite caches the results. The free API has limits, so prices refresh twice a day instead of on every visit.

The whole thing runs in one Docker container. Forgejo builds and publishes the image on every push to main, and a separate workflow deploys it to the Docker server in my homelab. The gallery is only available on the local network, which is fine. Its target audience is usually sitting at the kitchen table anyway.