Graded
A community-driven price index for PAL retro collectors that reframes your collection as a portfolio priced by the community itself.
Visit Website
Project Overview
Graded is an in-house product that solves a real problem in the European market: PriceCharting — the de-facto reference — is US-biased, updates sporadically, and ignores the reality of the PAL market where most transactions happen on Wallapop, Vinted, and local fairs.
The platform reframes retro collecting as an asset class: your collection stops being a toy drawer and becomes a portfolio. Every transaction a collector reports refines the price index for the entire network.
While the network bootstraps, the index is seeded with temporary Wallapop and Vinted feeds so the terminal never feels empty. As users report real transactions, seeded data decays out.
Under the hood: NestJS backend on PostgreSQL with Prisma, automatic enrichment via IGDB + Twitch OAuth, 34 REST endpoints, 13 models with cascade and unique constraints, and 50+ platforms mapped. React 18 + Vite frontend with Tailwind and shadcn/ui.
Technical Challenges & Solutions
Challenge: Unifying titles and platforms with canonical identification across a fragmented ecosystem (regional variants, reprints, compilations).
Solution: I integrated the IGDB API via Twitch OAuth to automatically enrich every item and built a manual review queue for ambiguous cases. The result: a canonical 50+ platform map that makes prices comparable across users.
Challenge: Avoiding an empty terminal during network bootstrap without compromising the integrity of the community index long-term.
Solution: I designed a seeded-data system with temporary Wallapop and Vinted feeds that decay automatically as users report real transactions. Community signal always takes precedence over seed data.
Challenge: Making the index resistant to erroneous or malicious reports without turning the product into a moderated forum.
Solution: The index is computed with median (not mean) and filters by a minimum N of transactions before publishing a price. Outlier reports are statistically isolated without active human moderation.
Project Details
Technologies Used
Key Features

Inventory — Portfolio of record
CSV import from PriceCharting, batch-add, per-item cost basis, and region tags.

Dashboard — P/L at a glance
NAV, unrealized gain, platform distribution, and top movers 30D.

Sales — Realized trades
Multi-item lots, fees, net profit. Wallapop and Vinted aware.

Lots — Group & price
Bundle items for sale and pre-compute blended price vs. index.

IGDB Match — Canonical titles
Automatic enrichment, manual review queue, and 50+ platform map.

Community Pricing — The index is social
Collectors report sales and bids. Each report sharpens the median price for the entire network.
Results & Impact
Platforms mapped via IGDB
REST endpoints across 6 NestJS modules
Prisma models with constraints
Product Thesis
Your collection is not a toy drawer. It is a portfolio.
— Graded // Product Thesis