Archivist_
RUNNINGScan a card. Build a library. Native macOS MTG collection manager with on-device OCR.
/public/projects/archivist.png — wire it up here.Magic: The Gathering players accumulate thousands of physical cards across binders, deck boxes, and bulk piles — but have no efficient way to catalog them. Manually typing card names into Moxfield or Archidekt is tedious; existing scanner apps are either subscription-locked, web-bound, or built for phones with poor recognition under real lighting.
Collectors end up with no source of truth for what they actually own, and that gap shows up the moment they try to brew a new deck or evaluate a trade.
Archivist is a native macOS app that turns an iPhone or webcam into a real-time card scanner. Apple's Vision framework reads the card title and set code on-device — no cloud round-trip, no per-scan fees. Scryfall data dumps (~1.5GB cached locally) provide canonical card info, so the app works offline once seeded.
From there it's a real deck workshop: Commander bracket assessment against Wizards' design framework, Commander Spellbook combo detection across your collection, EDHREC-driven upgrade suggestions, mana curve and role breakdowns, and CSV/JSON/deck-list export compatible with Moxfield and Archidekt. Paid tiers add Postgres-backed cloud sync across devices.
- →Real-time card recognition via Apple Vision framework — iPhone or webcam, fully on-device
- →Commander bracket assessment against the official Wizards design framework
- →Combo finder powered by Commander Spellbook — surfaces infinite combos already in your pile
- →EDHREC-aware upgrade suggestions ranked against your actual collection
- →Mana curve and role-based deck analysis with target ranges
- →Export to CSV, JSON, and deck list — drop-in compatible with Moxfield and Archidekt
- →Cloud sync across devices on Plus and Lifetime tiers (Postgres on VPS)
- ·Native beats web for this use case — Vision framework OCR on-device is faster and more accurate than any cloud OCR I tested
- ·Shipping a desktop app forces you to think about distribution differently — no SEO, no growth loops, just a clear value prop and word of mouth
- ·Bundling Scryfall as a local cache made the app feel instant; round-tripping to an API would have killed the scan-loop UX