Skip to content

jcserv/maindeck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

178 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

maindeck 🃏

A fast, no-nonsense Magic: The Gathering deckbuilder. No ads, no feature sprawl, no pay-gates — just the tools you need to brew.

features 🚀

  1. drag-and-drop deck building across mainboard, sideboard, considering, and commander zones
  2. format legality + Commander bracket detection
  3. deck stats — mana curve, color breakdown, type distribution, opening-hand simulator
  4. printing picker with per-set prices (USD/EUR, foil variants)
  5. import/export — plaintext, Arena, JSON (maindeck format)
  6. public deck exploration with forking

    card data is synced from Scryfall via a Vercel Workflow; staging goes through Vercel Blob so ingestion doesn't thrash the live DB

screenshots 📸

Home
home
Search
card search
Editor
deck editor
Card view
card detail

stack ⚙️

Maindeck architecture diagram

getting started ✅

1. env

Copy .env.example to .env and fill in at minimum:

  • DATABASE_URL, BETTER_AUTH_SECRET, CRON_SECRET
  • RESEND_API_KEY, EMAIL_FROM
  • BLOB_READ_WRITE_TOKEN (only if STAGING_DRIVER=blob)

2. services + deps

pnpm install            # installs deps; postinstall runs `prisma generate`
pnpm db:up              # postgres via docker compose
pnpm db:migrate         # apply migrations

3. run it

pnpm dev                # next.js on :3000
pnpm wf:dev             # (separate terminal) vercel workflow dev server

scripts 🧪

pnpm test               # vitest
pnpm lint               # eslint
pnpm typecheck          # tsc --noEmit
pnpm db:studio          # prisma studio
pnpm analyze            # bundle analyzer

About

Maindeck is a modern Magic: The Gathering deck building app, built with NextJS, boasting a minimal & fast interface

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages