2026Founder, sole engineerIn production
ManaArchive
A print-aware inventory, deck-building, and marketplace-sync platform for Magic: The Gathering collectors and sellers.
The problem
Collectors track five-figure inventories in spreadsheets that lose the detail that actually determines value — which printing, which finish, which language, and which binder the physical copy is sitting in. Sellers then re-enter all of it by hand on every marketplace they list on.
What I built
- Modelled holdings as print-aware records normalized against Scryfall, so a card is never just a name — set, collector number, finish, and language survive import and export.
- Built a CSV import pipeline that resolves rows against a local Scryfall mirror first and falls back to live lookups, parking anything ambiguous in a reviewable queue instead of silently guessing.
- Wrote a single search grammar — t:creature c>=WU o:"draw a card" — used identically by the collection view and the global catalog, so one syntax works everywhere.
- Added marketplace listing sync that pushes sale-state inventory to the user's own CardTrader and ManaPool seller accounts, polls orders back, and queues sold copies for review before mutating local holdings.
- Sealed third-party seller tokens at rest with AES-256-GCM and shipped a documented key-rotation path that re-seals every stored connection without orphaning it.
Where it landed
- Nightly Scryfall bulk sync keeps metadata and price snapshots current, with a boot-time catch-up and an off-box GitHub Actions run covering missed ticks.
- Three-tier subscription model with Stripe checkout, billing portal, and webhook handling — plan enforcement runs whether or not billing is switched on.
- Public marketing routes are prerendered for SEO; the app itself runs split across Cloudflare Workers, Render, and Supabase Postgres to keep fixed cost near zero.