https://github.com/emfurgalski-beep/carddex
๐ง WIP โ Pokedex-style REST API and web explorer for Pokemon TCG cards, sets, prices, and meta data
https://github.com/emfurgalski-beep/carddex
anthropic api astro hono pokeapi pokedex pokemon pokemon-api pokemon-tcg rest-api supabase tcg vercel
Last synced: 3 months ago
JSON representation
๐ง WIP โ Pokedex-style REST API and web explorer for Pokemon TCG cards, sets, prices, and meta data
- Host: GitHub
- URL: https://github.com/emfurgalski-beep/carddex
- Owner: emfurgalski-beep
- Created: 2026-03-23T22:05:24.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-31T22:08:39.000Z (3 months ago)
- Last Synced: 2026-03-31T22:24:34.683Z (3 months ago)
- Topics: anthropic, api, astro, hono, pokeapi, pokedex, pokemon, pokemon-api, pokemon-tcg, rest-api, supabase, tcg, vercel
- Language: Astro
- Homepage: https://www.carddex.dev/
- Size: 338 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CardDex
**Pokedex-style REST API and web explorer for Pokemon TCG cards, sets, prices, and meta data.**
[]()
[]()
[](https://www.carddex.dev)
[Live Demo](https://www.carddex.dev) ยท [API Docs](https://www.carddex.dev/docs) ยท [OpenAPI Spec](https://www.carddex.dev/openapi.json)
---
> **Note:** This project is under active development. Some features (prices, meta, collection tracking) are not yet complete.
## Overview
CardDex is a Pokemon TCG database and API that serves **20,600+ cards** across **186 sets**, wrapped in a Pokedex-themed frontend with a Gameboy LCD aesthetic.
### Features
- REST API with full-text search, pagination, and image proxying
- Pokedex-themed homepage with LCD green panels, boot sequence, and Gameboy sound effects
- Clean, data-focused card/set/price/meta pages with subtle Pokedex accent styling
- Card detail with HP/ATK stat bars, tabbed info, and PREV/NEXT keyboard navigation
- Server-side rendered with Astro for fast page loads
- Data sourced from [TCGdex](https://tcgdex.dev) (Pocket series excluded)
### Roadmap
- [x] Homepage (Pokedex shell with Prof. Oak's Lab)
- [x] Card detail page (stat bars, tabs, prev/next nav)
- [x] Sets, Prices, Meta pages with Pokedex accents
- [ ] Card variants and price data integration
- [ ] Search improvements (filters by type, rarity, set, price)
- [ ] Collection tracking and deck builder
- [ ] Price history charts
## API Reference
All endpoints are under `/v1`. Read-only access requires no authentication.
Cards
```
GET /v1/cards?q=charizard&page=1&pageSize=20
GET /v1/cards/random
GET /v1/cards/:id
GET /v1/cards/:id/prices
GET /v1/cards/:id/rulings
GET /v1/cards/:id/synergies
```
Sets
```
GET /v1/sets
GET /v1/sets/:id
GET /v1/sets/:id/cards?page=1&pageSize=20
```
Prices
```
GET /v1/prices/top?limit=10
GET /v1/prices/trends?limit=10
```
Meta
```
GET /v1/meta/formats
GET /v1/meta/:format/top?limit=10
```
Images
```
GET /v1/images/cards/:cardId/:file
GET /v1/images/sets/:setId/:file
```
Auth & Community
API key registration, usage tracking, and community card data submissions. See [`/docs`](https://www.carddex.dev/docs) for details.
```
POST /v1/auth/register
POST /v1/auth/regenerate
GET /v1/auth/usage
POST /v1/community/submit
GET /v1/community/submissions
```
## Tech Stack
| Layer | Tech |
|-------|------|
| API | [Hono](https://hono.dev) |
| Frontend | [Astro](https://astro.build) (SSR) |
| Database | [Supabase](https://supabase.com) (PostgreSQL) |
| Validation | [Zod](https://zod.dev) |
| Deploy | [Vercel](https://vercel.com) |
| Data | [TCGdex](https://tcgdex.dev) |
## Getting Started
### Prerequisites
- Node.js 18+
- A [Supabase](https://supabase.com) project with the schema applied
### Setup
```bash
git clone https://github.com/emfurgalski-beep/CardDex.git
cd CardDex
npm install
cp .env.example .env
```
Add your Supabase credentials to `.env`:
```
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_KEY=your-service-key
```
### Seed & Run
```bash
# Seed the database
npm run seed:tcgdex
# Start the API (from root)
npm run dev
# Start the frontend (from web/)
cd web && npm run dev
```
## License
MIT