Scry Hold : A Magic The Gathering Card Inventory Management System

Scry Hold

This app was created because I needed a way to organize my massive pile of bulk Magic: The Gathering (MTG) purchases. Specifically, I had a ton of cards in Japanese, and trying to look them up and track them using the available mobile apps was painfully slow—especially when juggling translation and organization.

Plus, I really just needed a good excuse to kick the tires on the latest version of the framework, so Laravel 12 became the natural backbone for this project.

What is Scry Hold?

It's a web application I built to quickly search, catalog, and manage my card collection. The main goal was speed and simplicity for bulk data entry, making it easy to deal with non-English cards using the Scryfall API.

The whole thing is live right here: Scry Hold Library

I often make it a point to buy MTG cards when I travel which is why I have a lot of non-English singles and boosters, the key challenge was keeping track of the actual cards I owned while still having the database be fully searchable and usable.

Here’s the trick:

  1. I use the card's Set Code and Collection Number (which are language-agnostic) to look up the card in Scryfall.
  2. I then save the official English version of the card data to my database.
  3. I include a simple field in my inventory record that indicates the card in possession is Japanese.

This way, I get instant translation and perfect searchability without slowing down the process. The application handles all the API calls, type safety, rate limiting, and caching in the background, making it way faster than flipping between mobile apps.

Under the Hood 🛠

This project was a blast to work on because it gave me a chance to use some of the latest tools:

  • Backend: Laravel 12 with PHP 8.2+ provided the perfect modern foundation.
  • Frontend: Vue 3 with TypeScript handles the UI, giving me that snappy, reactive feel.
  • API: It's all driven by a custom, type-safe API client wrapper around the Scryfall API.

Development Notes and Next Steps

The bulk of the core functionality was hashed out over a single three-day weekend back in August 2025.

GitHub Copilot was a big help in rapid development. I'll be honest, I've never been a fan of writing frontend code, but AI made the development quicker, especially for all the tedious components and scaffolding in Vue.

Current To-Do List:

  • Deck Management: This is currently functional, but it could definitely use some serious improvements in usability and features.
  • Library Filters: The filters are basic right now. They need to be expanded to allow for more complex searches (like filtering by language owned, foil status, etc.).