5 min read

Putting EDHREC on Every Card in Moxfield

A Firefox extension that badges every card in a Moxfield deck with its EDHREC rank, then shows what to add, what to cut, and which combos you're one card away from.

  • magic the gathering
  • browser extension
A Moxfield Commander deck for Lathliss, Dragon Queen, with a purple rank badge such as #662 or #1,368 on the corner of every card.

If you build Commander decks for Magic: The Gathering, you probably live in two browser tabs. Moxfield is where you build the deck. EDHREC is where you find out what everyone else plays with your commander. Building a deck means flipping back and forth between them, one card at a time.

I wanted the two in one place, mostly for my own decks. Nothing like it seemed to exist, and Moxfield’s most-requested EDHREC feature, sorting a deck by EDHREC rank, had been sitting open for three years with 53 votes. So over two days I built Moxfield EDHREC Overlay, a Firefox extension that puts EDHREC’s numbers right on the cards in your deck.

Ranks on cards

Open any deck on Moxfield and every card gets a small badge with its EDHREC rank, colour-coded so staples and filler stand apart at a glance. Your commander gets its commander rank, how popular it is as the deck’s leader, rather than how often it shows up in the 99. Cards on the Commander format’s Game Changer list get a gold ring.

Hover a badge for the numbers a rank can’t express: how much more often the card shows up in decks for your commander than in other decks that could play it, what share of those decks run it, and how salty it is (EDHREC’s crowd-sourced measure of how much people hate playing against a card).

What to add, what to cut

A drawer on the right side of the page holds four tabs:

  • Add: EDHREC’s recommendations that your deck doesn’t run yet, led by the cards most tied to your commander. Each one has a price and a card preview. Tick the ones you want, and the extension copies them as a list you can paste into Moxfield’s bulk import.
  • Cuts: your own deck, worst first. It’s the “sort by rank” feature people kept asking for, aimed at what they actually wanted it for: finding the cards to trim. It also totals the deck’s salt.
  • Combos: from Commander Spellbook, the combos already in your deck and the ones you’re a single card away from. “Add Repercussion for near-infinite damage” is a more useful suggestion than a number.
  • Avg: how your list compares to EDHREC’s average deck for your commander, in both directions. The cards you run that the average doesn’t are the ones that make the deck yours.

The drawer's Cuts tab, listing the deck's cards worst first, each with its rank, a bar for how often it's played, and a price.

Privacy

The extension never touches your Moxfield account or Moxfield’s own API. Moxfield locked its API down in late 2024 after scraping abuse, and I wanted to stay well clear of that. Instead, it reads the deck page you’re already looking at and asks three public services about the cards on it: Scryfall for ranks and prices, EDHREC for the numbers specific to your commander, and Commander Spellbook for combos.

It’s light on all three. A 100-card deck costs two requests and about a second, then nothing until the cache expires. EDHREC’s data comes from an undocumented feed, so the extension treats it as optional: if it ever breaks, the badges fall back to plain ranks instead of breaking the page.

The bugs

Most of the work was in edge cases that quietly showed a card as “unranked”.

Flavor names. Moxfield shows some cards under their crossover names, like Valley Farmstead, a reskin of the land Yavimaya, Cradle of Growth. Scryfall’s main lookup only knows real card names, so every reskin came back unknown. Worse, the extension remembered that miss for a week. Now it retries those names with Scryfall’s search, which does understand flavor names, before giving up.

Prices. The obvious way to price a card picks an arbitrary printing. For Volcanic Island, that turned out to be the 1993 Beta printing, which has no US price at all and a €10,577 European one. Now, when a card’s default printing has no price, the extension searches every printing for the cheapest one that does, the copy you’d actually buy. Volcanic Island comes back at $938.50.

Six layouts. Moxfield can show a deck in six different view styles, and its CSS class names change on every deploy. I tested by driving a real browser through all six on a live deck. It has to run with a visible window, because Moxfield’s Cloudflare protection blocks headless browsers outright.

Shipping it

The extension went up on Firefox Add-ons the day I finished it. Getting it listed meant writing a privacy policy and declaring exactly what leaves the browser: card names, sent to those three services, and nothing else. No account, no analytics, no tracking. The source is on GitHub under the MIT license.

Update: October 3

Three weeks later, EDHREC replaced its synergy score with a new one called lift, so version 1.1.0 followed. Lift divides how often a card is played with your commander by how often it’s played everywhere it could be, so 1x means “nothing special”. Sol Ring, which nearly every deck runs, sits at 1.0x with Xyris, the Writhing Storm. Orcrist, Goblin-cleaver is in only 5.7% of Xyris decks, but that’s 9.4 times as often as anywhere else, so it scores 9.4x. The drawer now ranks by lift, and the tooltip shows both scores.

A badge tooltip for Atsushi, the Blazing Sky: rank #1,368, lift 7.2x, synergy +39.6%, and played in 46% of decks for the commander.

The update fixed two more sneaky problems. In Moxfield’s Visual Grid, rows overlap, and three badges in four were hiding under the card below. They now sit where you can see them. And reskinned commanders get looked up by their real name: the Hatsune Miku precon’s Miku, Song of the People is really Trostani, Selesnya’s Voice. Until the fix, that deck’s commander badge showed the wrong rank, and the commander went missing from every combo.

So far, a handful of people use it every day, and both reviews are five stars. Not bad for a tool I built for myself.

Unofficial Fan Content permitted under the Wizards of the Coast Fan Content Policy. Not produced by or endorsed by Wizards of the Coast, Moxfield, EDHREC, Scryfall, or Commander Spellbook.

Last tended


Back to the journal