Skip to content

Repository files navigation

Catcha

Tokenised Pokémon card marketplace UI — buy Pokéballs, rip them open, vault graded cards, sell back instantly, list on the marketplace, or redeem for physical shipping.

This repo is a frontend prototype with a typed mock API layer (src/lib/api/*). No real auth, payments, or database yet. See docs/APPLICATION_OVERVIEW.md for architecture and what backend services are needed to go live.

Stack

  • Next.js 16 (App Router) + React 19 + TypeScript
  • Tailwind CSS 4
  • Framer Motion (rip / reveals)
  • Zustand (session + toasts)

Requirements

  • Node.js 20+ (recommended)
  • npm 10+

Getting started

npm install
npm run dev -- -p 3001

Open http://localhost:3001.

Scripts

Command Description
npm run dev Dev server (default port 3000; use -p 3001 if preferred)
npm run build Production build
npm start Serve the production build
npm run lint ESLint

Try the full mock journey

  1. /lp/fire-lightning — campaign landing
  2. Open a pack → Sign up (any email; DOB must be 18+)
  3. Checkout — use any card number not ending in 0000
  4. Rip → sell back or keep → /collection → list on marketplace

Session and vault state persist in the browser (sessionStorage / localStorage). Display currency defaults to USD; switch USD / GBP / EUR from the sidebar or top bar (stored as catcha-currency).

Project layout

src/app/(shell)/     # Main app shell (sidebar + mobile tabs)
src/app/(bare)/      # Auth, rip, campaign LP (no sidebar)
src/components/      # CardSlab, packs, shell, share generator, …
src/lib/api/         # Typed data access (swap this for real backend)
src/lib/mock/        # Seed catalogue + localStorage DB
src/types/           # Domain models
public/cards/        # Local card art for the mock catalogue
docs/                # Application / backend overview

Deploy (Vercel)

  1. Push this repo to GitHub.
  2. Import the project in Vercel (Framework Preset: Next.js).
  3. Leave env vars empty for the mock UI — none are required.
  4. Deploy. Build command: npm run build · Output: Next.js defaults.

Or from the CLI once logged in:

npx vercel

Notes

  • 18+ only — signup validates date of birth.
  • Card imagery under public/cards/ is for prototype use only (Pokémon Company IP). Licensed assets or a licensed API are required for a commercial launch.
  • Theme preference is stored client-side as data-theme on <html>; when unset, colours follow prefers-color-scheme.

About

Tokemon — tokenised Pokémon card marketplace (frontend mock)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages