I'm a collector. Always have been. Toys, needed ALL of the ones pictured on the back.
Action Figures, wanted the whole set.
It's... a small problem for me. I want to collect. I'm careful about what I get involved with because of it.
I figure it's a bit tied into how I throw myself deep into the tech I'm in. I want it all...
Anyway... this is about Magic: The Gathering. I've been Collecting it since about 1994. I played too, but that was really a secondary thing to collecting the cards.
At this point in my life, I got some disposable money. I just collect now. I still do it through packs, I like opening the packs.
So... I have a few cards. And I want to track them. I've tried a dozen or so things over the years. Manually... stopped after a few hundred cards.
There was an EARLY Wizards product to track magic cards... It's database SUCKED... sorry devs, it clearly was not tested with 10,000+ cards. At that point it took about 6+ seconds to add a card. You could only add 1 at a time. Of the same card.
To enter 6 of the same cards... I had to add 1, 6 times... Overall, about a minute. Yeah... That got ditched.
There's been a couple more. I don't want to name them. I want something very specific - they don't serve ME correctly. One that was SUPER close to being what I was looking for is someone's hobby project. They also have other stuff I use. I really appreciate what they have.
That was my latest effort. I got just under 10,000 cards tracked before it became too much of a pain.
I needed something I controlled. But getting all the data entered... fuck that. It's why I've never built my own. Sourcing the data... Nope. Fuck that.
MTGJSON
Random discovery, MTGJSON is a data set of all the cards. They update it. It's.. what I've always needed.
I wanted to see what it'd take to spin up a site to enter cards through.
The functionality I needed as a PoC
- Process MTGJSON into a database.
- Display Sets
- Select a set and display cards of that set
-
- Display count of 'collected' cards
-
- Enter quanity of card 'collected'
That's it. Very short version - Display and track cards. TADA!
There's some hidden stuff. Sets needed to have their set icons displayed. Cards needed their image displayed. Small stuff I needed to prove out the idea.
Staring with the raw JSON to that MVP of functionality took me 3 days.
Make it More
From the core functionality... I had to make it more. I burned through a pad of post-its making notes of the things I wanted to have and things needing fixing.
I wanted this site to remove as much friction for me as possible. That's my driving factor - Enter and display my collection as easy as can be.
Over all - I think it's there. As I'm going through adding cards, I'll find a pain point. I then remove it.
The last one that really stood out was navigating the grid of cards. Tab moved to the next card. So... to go 20 cards... I had to tab 20 times. This sucked. I added the use of arrows and being able to move up/down rows.
Other are other little things. I'm adding features that I need to enter my cards. And discover stuff about cards.
The site is mtgdiscovery.com. I chose this name because I was learning stuff about the cards and sets before I even finished building it. Seemed fitting.
I know I'm not done yet. There's a feature I want - Card Search - that's not built. I don't need it yet. I will need it. Some cards are mis-sorted, so I've a growing pile of singles that I'm gonna be lazy about. I don't want to have to figure out the set, find the card, enter 1 card, go back to all teh sets... It's a long cycle. So I'll have a page to do a card search.
I don't need that page yet - so it doesn't exist. I want it. I know I'll need it, but I'm waiting until it's a need.
Extras
That's not to say I didn't build in some stuff for fun. You can look at all of a named card, or all of an artists cards. I've used the "all of a card" a couple times to enter a card. I knew a set with the same card, so went there, then to "all of this card" and found the version I needed.
Small stuff is what makes this awesome for me.
There were nights I got something working and I was GIDDY about it.
MTG DISCOVERY
The code's not perfect. Probably some shitty javascript... but it does what I need in a way that I'm happy with. I made it availabel for others to use... feel free.
If you're curious about my personal MTG collection... as I write this I'm still adding what I have; and I'll continue to collect new sets as they come out.
My Collection
have fun!