Building CardCore - April 3, 2026 - Meta Stats, Deck Comments, and the Road to Best-in-Class
Three days. 30+ commits. One clear mission.
The last blog was March 31. Since then, CardCore has gone through one of the most intense building sprints we've had. I want to walk through everything that shipped, what broke along the way, what we learned, and where we're headed before the April 12 tournament.
SWUMetaStats is live in the deck builder
This is the big one. With permission from Michael (the SWUMetaStats site owner), we've integrated competitive meta data directly into CardCore. Here's what that means for you:
In the deck builder, when you search for cards, you'll see purple "X% meta" badges on cards that show up in tournament-winning decklists. Searching for Beguile? You'll see "20.8% meta" right next to the card type badge. This works on all variants - Normal, Foil, Hyperspace - because tournament usage applies to the card regardless of bling level.
On card detail pages, you now see tournament deck appearances. If a card is being played competitively, you'll see which leader/base combos are running it, which tournaments, and what standing those players achieved. This is real tournament data flowing through the system.
The technical foundation is a 30-minute cached in-memory map derived from SWUMetaStats' API data. No new database tables needed. The system gracefully degrades if SWUMetaStats is down - you just don't see badges, nothing breaks.
We went through a full security and hardening pass on this too. The meta badges use the card-level product ID (not variant-level) so all printings show the same data. The SWUMetaStats logo attribution links directly to their site. Credit where credit is due.
Deck comments are live
Public and shared decks now have a comment section. Sign in with Discord, post your thoughts on someone's build.
This went through a serious security review before going live. Secret-link decks require the share token to access comments (so knowing a deck ID alone isn't enough). There's rate limiting (10 comments per minute per user), staff can moderate by deleting any comment, and the system doesn't leak internal customer IDs in API responses. We found and fixed an IDOR vulnerability where secret-link decks were accessible by raw deck ID before it ever reached a real user.
Full-text synergy search
The card search in the deck builder now searches card descriptions, not just names. Search "credit" and you'll find every card that interacts with credits. Search "draw" and you'll find cards with draw effects. Search "sentinel" and you'll find both the keyword and cards named Sentinel.
Name matches rank above description-only matches, so if you're searching for a specific card by name, it still shows up first. This is a game-changer for discovering synergies during deck building.
Deck stats got a major upgrade
The stats panel in the deck builder now shows:
- Arena split - Ground vs Space unit count with percentage breakdown
- Top traits - Your most common traits (Rebel, Jedi, Bounty Hunter, etc.)
- Top keywords - Ambush, Sentinel, Restore frequency
- Trigger breakdown - When Played, On Attack, When Defeated counts
All of this comes from normalized database fields, not text parsing. It's trustworthy data.
Cost sort and inline stats
You can now sort search results by cost (ascending or descending) in addition to alphabetical. Every unit in search results shows its power/hp stat line and Ground/Space indicator inline. Events show cost only. No more opening the preview just to check if a unit has 3 or 4 power.
The trade system got a complete redesign
The P2P trade workflow went through a fundamental redesign (COREAPP-888). Trades now require dual exchange confirmation - both partners confirm the handoff independently, then the store verifies. We added a staff Discord channel for trade alerts, automatic timeout for trades stuck in pending_store status, and fixed a bug where staff who were also trade partners couldn't confirm their own trades.
Pricing architecture overhaul
The entire pricing pipeline got refactored into a canonical pricing resolver (COREAPP-892). Every surface that shows a price - card detail, search results, checkout, trade-in - now flows through the same effective price logic. The checkout flow got a new 409 PRICE_CHANGED recovery flow so if a card's price changes between adding to cart and submitting the order, the user gets a clear explanation and can re-confirm instead of hitting a cryptic error.
Card data reconciliation
We discovered that TCGPlayer's card catalog has incorrect attribute data for some cards. Jabba the Hutt's aspects were wrong. So we built a reconciliation script (COREAPP-887) that cross-references our card_attributes against the official Star Wars Unlimited API and corrects discrepancies. This is the kind of data integrity work that competitive players notice when it's wrong and never think about when it's right.
Convention booth showcase
For Atlanta prep (COREAPP-896), we built a /demo/showcase attract loop display for the convention booth. This is a self-running demo that cycles through CardCore features on the booth screen when nobody is actively using the system.
The honest assessment - and what's next
Here's where I want to be real with you. After all this building, I took a hard look at where CardCore stands compared to sites like Dreamborn.ink, Moxfield, SWUDB, and others. The deck builder is strong. The editor, the collection integration, the meta stats, the trading system - genuinely competitive.
But the deck browse and discovery experience is where we fall short. Right now, browsing community decks shows you a name, a leader image, and a timestamp. That's it. No deck price. No "you already own 63% of this." No archetype tags. No view counts or likes. No sort by popularity.
And the biggest gap: CardCore is the only SWU deck builder that's also a store, but there's no "Buy Missing Cards" button anywhere. The data exists - we know what you need, we know what's in stock, we know the price. The button just isn't there.
So we filed 22 urgent tickets tonight. Every single one targeted at closing the gap between "good tool" and "best-in-class destination." Here's what's coming before April 12:
- Deck price totals everywhere
- "Add Missing to Cart" button on deck views
- Deck browse overhaul with prices, collection %, comments, tags
- Archetype tagging (Aggro, Midrange, Control, Combo, Budget)
- Community deck sort and search
- Fork/copy decks from other players
- Discord notifications when someone comments on your deck
- Public decks on user profiles
- Deck view counts and likes
- Shareable deck images for Discord and social
This is the sprint that turns CardCore from "a platform with a lot of features" into "the one place SWU players need."
Nine days to make it happen. Let's go.