Pokémon TCG tournament data, visualized
Live Site • What It Does • How the Data Flows • Development • Credits
Ciphermaniac answers the questions competitive Pokémon TCG players actually ask: who plays this card, how many copies, and is it trending up or down? Pick any card and see which decks run it. Browse archetypes, compare variants, and filter decklists by the exact cards they include or exclude.
- Card pages — usage across archetypes, average copy counts, a price history sparkline, and usage over time
- Archetype breakdowns — core lists, tech choices, and side-by-side variant comparisons
- Meta trends — archetype popularity shifts, rising and falling cards, and price movers
- Player profiles — tournament results per player, with head-to-head comparison across shared events
- Flexible filtering — stack multiple includes and excludes, down to specific copy counts
- Fast loads — reports are precomputed and served as static artifacts, so pages render in under a second
GitHub Actions collect and process everything on a schedule; the site itself never scrapes anything at request time.
| Pipeline | What it does | When |
|---|---|---|
| Online Meta Report | Aggregates the last 14 days of online tournaments from PlayLimitless | Daily |
| Daily Price Check | Pulls TCGPlayer market prices via TCGCSV and appends rolling price history | Daily |
| Trends Report | Computes archetype popularity, card usage shifts, and price movers | Daily |
| Player Aggregator | Builds per-player results and head-to-head data | Daily |
| Card Metadata | Refreshes card synonyms, types, and WebP thumbnails | Daily / weekly |
| Download Tournament | Scrapes Day 2 decklists from major events on LimitlessTCG | On demand |
Artifacts land in Cloudflare R2 (browsable at r2.ciphermaniac.com), and the site runs on Cloudflare Pages with Functions backed by KV, R2, and D1.
Stack: SolidJS + TypeScript (strict) + Vite on the front end; Cloudflare Pages Functions on the back.
git clone https://github.com/rosematcha/ciphermaniac.git
cd ciphermaniac
npm install
npm run devRequires Node 20+.
| Command | What it runs |
|---|---|
npm run dev |
Vite dev server |
npm run build |
Production build |
npm run validate |
Typecheck (frontend, backend, node) + ESLint |
npm test |
Unit tests |
npm run test:mobile |
Playwright mobile tests |
npm run knip |
Dead code check |
CI runs the same quality gates plus a Lighthouse performance budget on every push.
- LimitlessTCG, PlayLimitless, and Robin — tournament data. The Limitless team's work is foundational to the Pokémon TCG community.
- TrainerHill and Brad — deck archetype analysis and early development support.
- TCGCSV and CptSpaceToaster — TCGPlayer market prices in a usable form after TCGPlayer's API crackdown.
MIT — see LICENSE.
Not affiliated with The Pokémon Company, Nintendo, Game Freak, Creatures Inc., or RK9.