Side Projects: MTG Deck Visualization Dashboard
Over the past few weekends, I’ve been building the backend data structures of an experimental dashboard to visualize deck structure and synergy in Magic: The Gathering.
I’ve been using the same data modeling and analytics principles I studied in my BBA Management Information Systems program.
The Project Today
This project is still in its early stages, and I don’t want to overpromise. Right now, I’m hosting my own copies of Magic card data locally via Scryfall's public API (not a sponsor or affiliated), and running graph-based queries in Neo4j to uncover relationships between cards and concepts.
I’ve also been experimenting with frontend mockups using AI to imagine how this might look in a future web-based app, complete with interactive 3D node graphs and deck analysis tools. Here's an example of that:
If you’re curious how this translates to something usable, here’s a screenshot from my local Neo4j database showing a basic synergy map between Urza, Thopter Foundry, and Sword of the Meek, and several other cards (describing a well known combo loop in artifact decks):
Here’s a small excerpt of the Cypher code that generates this model, specifically the combo itself, and what cards relate to it:
MERGE (combo:Combo { key: "TF+SoTM_infinite",
name: "Thopter Foundry ⇄ Sword of the Meek Loop" })
SET combo.description = "Activate Thopter Foundry by sacrificing Sword of the Meek, trigger SoTM, net +1 Thopter +1 life each loop."
MATCH (tf:Card { name: "Thopter Foundry" })
MATCH (sotm:Card { name: "Sword of the Meek" })
MERGE (combo)-[:INCLUDES]->(tf)
MERGE (combo)-[:INCLUDES]->(sotm)
MERGE (req_sac:Requirement { type:"sacrifice",
target:"non-token artifact",
zone:"battlefield" })
MERGE (combo)-[:REQUIRES]->(req_sac)
MERGE (req_mana:Requirement { type:"mana", amount:1, color:"generic" })
MERGE (combo)-[:REQUIRES]->(req_mana)
MATCH (urza:Card { name: "Urza, Lord High Artificer" })
MERGE (urza)-[:GENERATES { amount: 1, color:"generic" }]->(req_mana)
What makes this interesting to me isn’t just the technical side, it’s how this brings game theory, user experience, and card evaluation into one place. It’s a chance to combine my data background with one of my favorite hobbies and answer questions like:
Recommended by LinkedIn
About Me and Magic
I've been playing Magic since about 2016, and my favorite format is Canadian Highlander. I’ve always loved the feeling of building something from the ground up. That’s probably why my favorite set is 2018’s Dominaria. It had a classic feel and a great draft environment that let you think in overlapping archetypes.
Here's one of my favorite cards from that set, specifically for it's flavor text:
This side project is a tool I’m building slowly, to make understanding and improving deck construction less of a mystery and more of a visual, data-guided experience.
What's Next?
Next up, I’ll be digging into frontend programming to prototype this in a way that works cleanly across mobile, tablet, and desktop. I’m also looking into Web3-style UI options that allow for smooth 3D interactions using libraries like three.js.
Thanks for reading, open to feedback, and if you’re working on anything similar (or want to jam ideas), let’s connect!