Dev Blog

What's new on MTG Tools, newest first. A running log of what got built and when, kept by CalPal. Have an idea or found a bug? Say hi on Discord.

Trading

Booster boxes, packs, bundles, Secret Lairs and precons can go in your binder and on your wishlist, with the same alerts singles get.

New
  • Nearly 4,000 sealed products are now searchable wherever you'd type a card name, marked with a box icon. Booster boxes and packs, bundles, Secret Lairs, precon decks and cases.
  • Add one to your binder and there's no printing, finish or condition to fill in, because a sealed box doesn't have any.
  • Put one on your wishlist and you get the same DM the moment someone in your server lists it, telling you who has it and where.
  • Search by set code or in any word order: "blb booster box" finds the Bloomburrow Play Booster Box.
Changed
  • The `card:` option is now `item:`, since it takes sealed product too.
Fixed
  • `/find` didn't know about sealed product, so searching for a box someone had listed answered "I don't know a card called that".
TradingSite

Hovering a card in your binder or wishlist now shows a full-size preview, whatever the card is called.

Fixed
  • The preview was being sized by the length of the card's name, so short names like Ort showed a thumbnail barely wider than the word while long names got the full picture. Every card now previews at the same size.
  • The preview also sat inside the table's scroll area, which cut off everything below the last row. It floats above the page now, and flips above the card when there isn't room below.
Tournaments

Hosting a tournament no longer asks how many rounds you want. The turnout decides, and you can move it mid-event when people show up late or drop.

Changed
  • The create form doesn't ask for a round count any more. It's set from who actually turned up when round 1 starts: 3 for up to 8 players, 4 up to 16, 5 up to 32.
New
  • Host controls now show the round count with a minus and a plus, so you can add or drop a round while the event is running. Attendance is exactly the thing that changes on the day.
  • Overridden it and changed your mind? "Back to automatic" re-sizes it from the players still in.
  • You can't set it below a round that's already been paired, so results can never be stranded.
TradingSite

The tables were squeezing every column down to nothing on a phone. Each card is its own block now, with everything readable and editable.

Fixed
  • On a phone the binder and wishlist tables crushed their columns: a price of "90% TCG low" showed as "90%", card names broke across three lines, and the quantity box was too narrow to show its own number.
  • Each card is now its own block on a small screen, with a label on every field, so nothing is cut off and nothing scrolls sideways.
Improved
  • Printing, finish and condition on your wishlist were hidden entirely on a phone, so there was no way to set them. They're there now.
  • Bigger tap targets for removing a card, and input boxes you can actually see without a mouse to hover them.
Life Counter

Put the phone flat on the table and your opponent's total is right way up for them, not upside down.

Improved
  • You sit at the bottom of the screen now, and everyone across the table is turned to face them. Lay the device between you and nobody has to read their own life total upside down.
  • The − and + zones turn with each panel, so your opponent taps the side that looks like minus from where they're sitting and it does the right thing.
  • Player 1 is now called "You" by default. Tap any name to change it.
Tournaments

Multi-pod drafts now open with seat 3 against the other table's seat 3, and hosts can pick a different opener if they want one.

Changed
  • Round 1 of a multi-pod draft now pairs you against the same seat at a different table. You never open against someone you just drafted with, and you and your opponent saw a comparable slice of every pack, which makes it the fairest first round.
New
  • Hosts choose the round 1 opener when creating a draft: same seat at a different table (the new default), within your own pod, or random across the field. Each option explains what it does on the form.
  • Swiss round count now defaults to the right number for your turnout instead of always starting at 3. Set it yourself and we leave your number alone.
Fixed
  • Random pairing regularly sat pod-mates down against each other in round 1. With twelve players in two pods that was a third of the tables.
TournamentsPic2Decklist

Read your deck photo into a list, then correct it right there — like the standalone tool — and re-scan or add cards as needed.

New
  • After your tournament deck photo is read into a list, you can now edit it inline — fix counts, remove misreads, and add cards by name — then Save. It's what shows in the end-of-tournament gallery.
  • A "Generate a decklist from this photo" button for a photo you've already uploaded, plus a Re-scan button to read it again.
Improved
  • Better name matching when only a few letters of a card are legible — competitive decks now lean on the current metagame to resolve hard reads, and near-misses with a chopped-off front edge match more reliably.
A sleeker life counter
Life Counter

The life counter got a proper glow-up — gradient panels, a bigger number, hold-to-change, undo, and glanceable counters.

Improved
  • New look: depth-y gradient panels, a much bigger life total, and a darker, cleaner layout.
  • Tapping a side now shows a running "+3" that pops and then folds into your total, so quick changes read clearly instead of the number jumping around.
  • Hold a side to change life fast — it speeds up the longer you hold — so the fiddly −5/+5 buttons are gone.
  • Counters are glanceable chips on each panel now, and commander damage is a color-coded grid (each cell matches that opponent's color) instead of a plain list.
  • Added Undo for mis-taps, a dimmed "eliminated" treatment, and a little haptic buzz on each change where your device supports it.
A privacy policy
Site

Added a plain-language privacy page so it's clear what the site does and doesn't collect — and no, there's no cookie banner to click through.

New
  • A Privacy page (linked in the footer) covering the data used for accounts and tournaments, the cookieless analytics, and the handful of services the site relies on.
  • The short version: only the necessary cookies that keep you signed in, no cross-site tracking, and nothing sold or used for ads — which is why there's no cookie-consent banner.
Tournaments

Standings now settle between rounds, and you can see when each round started and how long it ran.

Changed
  • The standings table reflects only completed rounds, so it stays put while a round is being played and updates when the next round starts.
New
  • A Round times panel showing when each round started and how long it ran (start to the last result submitted).
Life CounterTournaments

Track life and counters for 1-6 players — Commander, poison, energy, and more — standalone or right inside your tournament match.

New
  • Life Counter tool: 1-6 players, any starting life (20/30/40 or custom), with Commander damage, poison, energy, experience, and custom counters. Runs on your device and survives a refresh.
  • Open a life counter straight from your current tournament match, prefilled with both players' names.
Tournaments

Hosts can regenerate the current round's pairings, and draft round 1 now respects the cross-pod setting.

New
  • Re-pair round: a host can regenerate the current round's pairings in place, with a confirmation if any results are already in.
Fixed
  • Draft round 1 now honors cross-pod pairing — with cross-pod on and more than one pod, everyone is paired as one pool instead of leaving a bye in each pod.
TournamentsPic2Decklist

Turn your tournament deck photo into a full decklist, then browse everyone's decks — photo and list together — once the event wraps.

New
  • When you upload a deck photo for a tournament, you can have it read into a decklist with Pic2Decklist (a checkbox, on by default).
  • After a tournament ends, the deck gallery lists each player as a row you can expand to see their photo and generated decklist side by side.
AccountsSite

You no longer need a Google account to save your stuff — sign in with a passwordless email link, and guests can now keep their history.

New
  • Email sign-in: type any email address and we send you a one-click magic link. No password, no Google account required.
  • Guests can save their account: link Google or an email from a guest session and your existing tournaments and stats carry over instead of starting fresh.
Improved
  • Refreshed the logo colors and the browser tab icon.
Site

A round of database hardening to keep your data locked down.

Security
  • Turned on row-level security across every database table so nothing is reachable except through the app's own server.
P1P1Site

You can now flip back through previous days of P1P1, Discord embeds stay in sync, and the whole codebase got a security review.

New
  • Step back through previous days on any daily P1P1.
  • Every P1P1 links out to the full cube list or set for context while you pick.
Improved
  • Recent Activity links a vote to the exact day's pack it was cast on.
  • Daily P1P1 Discord embeds refresh correctly when a new pack rolls over.
Fixed
  • Card art no longer stayed stuck on the previous day when flipping between packs.
Security
  • A full review of the codebase: locked down link handling and uploads, closed a couple of request-forgery and injection gaps, and added rate limits to the expensive endpoints.
Pic2DecklistDaily games

Pic2Decklist got noticeably more accurate, and the daily puzzles now roll over while most of the US is asleep.

Improved
  • Near-miss reads snap to the real card by matching against the chosen set or cube list, so Large Boar becomes Large Bear.
  • Deck-name colors ignore hybrid mana pips, so a WR hybrid in a BGR deck no longer adds white.
Changed
  • Daily puzzles now reset at midnight Pacific, so the new one lands overnight across the country instead of at 9pm out west.
  • Scanning a deck now uses a free account with a small weekly limit, which keeps the tool sustainable.
Pic2Decklist

Snap a photo of your deck laid out on the table and get an editable, shareable decklist back.

New
  • Point a vision model at your deck photo and turn it into a decklist you can edit.
  • An MTGO-style visual view: creatures and non-creatures lined up by mana value, lands on the right, click any card to zoom.
  • Share a link that unfurls in Discord with the photo on top and the card grid below.
Improved
  • A second focused pass just for counting basic lands, since those are the hardest to read.
  • Autocomplete when adding a card by hand, and inference for names cut off by overlapping cards.
P1P1MulligandleKeep or MullSite

A new game, Commander support for the old ones, and the site finally grew a footer and an About page.

New
  • P1P1 (Pack 1 Pick 1): generate a 15-card booster from any set or Cube Cobra cube and vote on your first pick. Daily or one-off, and it renders a rich embed in Discord.
  • Commander support and multiple opponents for Mulligandle and Keep or Mull.
  • A Recent Activity feed on the homepage, an About page, a bug reporter, and a footer.
Improved
  • Configurable cube color balance for P1P1 (fixed groups plus flex slots).
  • A name-safe profanity and slur filter across public text inputs (Bob Shittelly is still welcome).
  • Daily puzzles show a countdown to the next one.
AccountsTournaments

Sign in once and your stuff follows you around. Plus a long list of tournament-day quality-of-life fixes.

New
  • Persistent sign-in with Google, a profile hub, and saved decklists shared across every tool.
  • Upload a deck photo with a proper draggable crop.
Improved
  • A Companion-style scoreboard for reporting match results, with clearer host steps.
  • More reliable round notifications, including detecting when the browser has muted them.
Tournaments

The big one. Run real events for your playgroup or local shop, from the first pairing to the trophy.

New
  • Host draft, sealed, or constructed events. Players join with a code or QR.
  • Live pairings, round timers, standings with real OMW/GW/OGW tiebreakers, and top cuts.
  • A stats page with lifetime records, finishes, podium rate, streaks, and head-to-head nemesis lines.
SiteHypergeometricChaos Draft

A full redesign, plus a couple of genuinely useful math tools.

New
  • Hypergeometric Calculator: import a decklist and work out your odds of drawing what you need, with AND / OR / NOT card groups.
  • Chaos Draft Tier List: every cheap booster ranked two ways, best for you and best for the whole table.
Improved
  • Full visual redesign with a light and dark theme.
  • Card images fall back to a fuzzy Scryfall lookup when an exact printing is missing.
Mulligandle
Mulligandle

Daily mulligan puzzles for a real deck. Like Wordle, but for Magic opening hands.

New
  • A fresh opening-hand puzzle every day that everyone shares.
  • Make your keep/mull call, then compare against how the field did.
Keep or Mull
Keep or Mull

Share a screenshot-free opening hand and let the community vote whether you should keep it or ship it back.

New
  • Build a shareable seven-card hand and collect keep/mull votes.
  • Results stay hidden until you vote, so you are not anchored by the crowd.