Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
File your Pokémon card collection in binders, on a little hand-painted desk: track your sets, TCGplayer and Cardmarket prices, wishlist and duplicates.
Translation pending
LifestyleTypeScript · CSSGitHub @EDYHEANOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A Pokémon TCG collection tracker drawn as a cosy painted desk. Your sets are binders on a shelf, the old computer on the desk runs your stats, and the cat sleeps next to your boosters. → nookdex.com · free, in French and English, on desktop and phoneRead the full README ↗
A Pokémon TCG collection tracker drawn as a cosy painted desk. Your sets are binders on a shelf, the old computer on the desk runs your stats, and the cat sleeps next to your boosters.
→ nookdex.com · free, in French and English, on desktop and phone
The site also has a blog (price analyses, upcoming sets), one page per set with its most valuable cards, and a release calendar.
| App | Next.js (App Router), React, zustand (state, saved in the browser), motion |
| Accounts and sync | Supabase (magic link and Google sign-in, one JSON save per player, asks which one to keep when two devices disagree) |
| Card data | TCGdex: cards, scans and Cardmarket prices. English prices from TCGplayer, with TCGCSV for the cards TCGdex doesn't link. |
| Data pipeline | Scripts turn the card data into static JSON (public/sets/). A daily GitHub Action refreshes prices and appends to a price history. |
| Hosting | Vercel, with e-mails sent through Brevo |
| Visuals | A painted scene, cut into layers (binders, cat, lamp…) by scripts/build-scene.mjs |
There's no card database server: every set is a static file the browser downloads when it needs it. The room is client-only. The notebook pages (about, blog, set pages, release calendar) are server-rendered for search engines.
npm install
npm run dev
Dev-only URL shortcuts: ?skip (skip the loader), ?open=<setId> (open a binder), ?os (open the computer),
?demo (fill a test collection).
npm run fetch-set # sets not downloaded yet
npm run fetch-set -- --force # refresh every binder set's prices
npm run fetch-set -- sv08 # one set (and its sub-sets)
npm run fetch-set -- --lang=en # the same in English (TCGplayer prices); --lang=ja for Japanese
npm run build-scene # cut the painted scene into layers (public/scene, src/data/scene.json)
| Path | What |
|---|---|
src/components/room/ | The painted desk, its layers and animations |
src/components/binder/ | A binder: cover, pages, card slots, the card sheet |
src/components/computer/ | NookDex OS |
src/components/shelf/ | First visit (welcome, guided tour), new-binder menu |
src/app/(desk)/ | The room, plus the notebook pages opened over it (about, blog, sets, release calendar) |
src/lib/ | Store, cloud sync, catalog, prices, search, sounds |
scripts/ | Card data, price history, scene and icon builders |
content/blog/ | Blog posts (Markdown, French and English) |
docs/ | Supabase schema, e-mail templates, blog guidelines, plans |
Card data, scans and Cardmarket prices: TCGdex. English prices: TCGplayer, via TCGdex and TCGCSV.
NookDex is a fan project. It isn't affiliated with, endorsed or sponsored by Nintendo, The Pokémon Company, Creatures, GAME FREAK, Cardmarket or TCGplayer. Pokémon and the card images are trademarks and © of their respective owners.
Made by Johan. If you like it, you can buy the cat a treat 🐈