Skip to content

Editors

The admin site provides a single Edit Lists page for managing decks, collections, and wanted lists. A tab at the top selects the list type — Decks, Collections, or Wanted Lists — and each shares the same core interaction model with minor differences per list type.

Pick a list type with the tabs at the top of the page, then choose the file to edit from the dropdown below them. Loading a file fetches full card data, printings, and pricing from the cache.

The list toolbar (shared with the public site pages) groups all card filters under a right-aligned Filters dropdown. The button shows a badge with the number of active filters, and the panel offers:

  • Hide Lands / Hide Unpriced — toggle lands and cards without a known price
  • Hide Extras — deck pages only; hides the maybeboard/token sections
  • Name — space-separated terms; a card matches when every term appears somewhere in its name, case- and accent-insensitively (jotun matches Jötun Grunt; the same matching the CLI session filter uses)
  • Color Identity — toggle any combination of the five colors. Exclusive (the default) matches cards whose color identity is exactly the selection; Inclusive matches any card that could be played in a deck of the selected colors
  • Sets — a tag input filtering by set code; type a code (space or comma finishes the tag) or pick from the autocomplete list of codes present in the list
  • Mana Value — a comparison (=, <, , >, ) against a non-negative value (0 is valid)

Filters combine, and Clear all filters resets everything. On deck pages the commander section is never filtered.

Each card displays + and buttons to add or remove copies. Reducing a card’s quantity to zero removes it entirely.

In binder and overlap views, these appear as transparent overlay buttons on hover. In list view, they appear inline.

Cards can be selected across every view mode for bulk actions. Hovering a card in binder, row, or column view reveals a translucent checkbox in its top-left corner; in list view the checkbox sits at the far left of each row. Clicking it — or Ctrl-clicking (⌘-clicking on macOS) anywhere on the card — marks the card with an accent-colored checkmark, and a Selected (N) button appears in the toolbar showing the running count of selected copies for the list you’re editing. The selection persists across grouping, sorting, and view-mode changes. A quantity group (e.g. ) selects all of its copies at once and counts them individually; once some copies are removed it shows a dash instead of a checkmark.

Opening the button reveals a menu of actions over that list’s selection:

  • Copy as Text — copies a quantity-prefixed N Card Name (SET:Collector Number) list to the clipboard
  • Copy as CSV — copies the selection as CSV (Name,Set,Collector Number,Finish,Condition,Quantity)
  • Clear selection — deselects the current list’s cards only

The public site adds an Add to Trade action here; the admin site omits it because it has no Trade Planner page.

While a list is open in edit mode, the Selected (N) menu also gains an edit section that applies the same operations as a single card’s + / buttons and context menu, but over the whole selection at once:

  • Add a copy / Remove a copy — bump each selected card up or down by one copy
  • Remove from list (decks: Remove from deck) — remove every copy of each selected card
  • Set as Foil / Set as Nonfoil — set the finish on each selected card that supports it (others are skipped)
  • Change Printing… — runs the printing picker over the selected cards one at a time (cancelling skips that card and continues)
  • Set as Commander — decks only; marks each selected card as a commander
  • Move to section… — opens a picker to move every selected card into an existing section, or New section… to name a new one
  • Move to list… — opens a picker to move every selected card into another list

These edits go through the same pending-changes/undo flow as per-card edits, so nothing is written until you Save (admin) or export (public). The selection is cleared once an action is applied.

Selections are held globally, so switching to another list (or list type) keeps them. Whenever anything is selected, an All Selected (N) button is shown in the admin header (on every page) with the total across all lists; its menu runs the copy actions over the whole cross-list selection and its Clear all selections entry wipes every list. The menu’s View all selections… entry opens a dialog listing every selected card — with its quantity, printing, finish, and condition — and the list it came from, shown in selection order or grouped by source, where each row’s ✕ removes one copy and the copy/clear actions are repeated.

The cross-list menu (and the View all selections… dialog) also offers Remove all selected, which deletes every selected card from its list. On the admin site this commits atomically to each list file across all lists in one pass (auto-committed to git when enabled), much like the Move Cards page. On the public site — which has no server — the list currently open in the editor is updated live, while removals for any other selected lists are merged into those lists’ saved browser sessions, surfacing the next time each is opened in edit mode.

Each editor has an Add Card Defaults toggle in the bottom action bar, between the + Add Card and Changes buttons. Clicking it expands a panel upward revealing the default fields; a dot on the toggle indicates when any default is currently active. It mirrors the session filters in the CLI’s collection, wanted, and add-card commands and is intended for batch entry — set defaults once, then add many cards in a row without confirming the same fields each time.

The available defaults vary per editor:

FieldDeck EditorCollection EditorWanted List Editor
Set codes✅ Comma-list✅ Comma-list✅ Comma-list
Finish
Condition❌ Not applicable

Defaults are scoped per-editor and persist across reloads in localStorage under ritual:admin:defaults:{deck,collection,wanted}.

  • Set codes filter — When set, the printing picker shows only matching printings. If exactly one printing matches, it is auto-selected and the picker step is skipped. If no printings match, the picker falls back to showing all printings with a hint banner.
  • Default finish — Pre-selected on the finish/condition step. If the chosen printing supports the default finish, that step is skipped entirely.
  • Default condition — Pre-selected on the finish/condition step. The step is skipped only when both finish and condition can be resolved.

When a default cannot be applied (e.g. the chosen printing doesn’t support the default finish, or no condition default is set on the Collection Editor) the finish/condition step still appears but the inputs are pre-filled.

Click the + Add Card button in the bottom action bar to open the card search modal. The modal shows keyboard-shortcut hints along its bottom edge; dismiss it with Esc or by clicking outside it.

  • Type at least 2 characters to search (debounced to 1 request per second)
  • Results are keyboard navigable (↑/↓ arrows, Enter to select)
  • Hovering or navigating to a card shows a preview image of the cheapest printing

Choose a specific printing from the grid showing set, collector number, and price. In the Deck Editor and Wanted List Editor, you may also choose No specific printing to add without printing details.

This step appears when the selected printing has multiple finish options.

  • Select a finish (nonfoil, foil, etched) if the printing has multiple options
  • Select a condition (NM, LP, MP, HP, DMG) — only available in the Deck and Collection editors; defaults to NM

Right-clicking a card (or clicking the button in binder/overlap views) opens a context menu. Set as Foil, Change Printing…, and Move to section… are available in all editors. The Deck Editor additionally offers Set as Commander.

The Move to section… item opens a picker listing every section except the card’s current one, plus a New section… entry that prompts for a name and moves the card into a freshly created section. Moving a card emits a set-section change (latest-wins: moving a card back to its original section cancels the pending move).

Every list type supports named sections that render as headed groups on the public site. Decks use sections for Commander/Main/Sideboard/Maybeboard; collections and wanted lists can be split into any sections you like (e.g. Trade Binder, Foils, High Priority).

Click the Sections button in the bottom action bar to open the Manage Sections dialog:

  • Add a section — type a name and click Add Section (or press Enter). New sections start empty. Section names must be unique case-insensitively: typing a name that already exists (in any casing) marks the input invalid, highlights the clashing row, and disables Add Section.
  • Rename a section — click Rename on a row; all cards in that section move with it. A rename that would collide with another section (case-insensitive) is rejected.
  • Delete a section — click Delete on a row. Only empty sections can be deleted; the button is disabled while a section still holds cards.

Cards with no explicit section belong to an implicit Main section, which is written out explicitly the next time the list is saved. On the public site, a list with two or more sections defaults to grouping by section, and Section becomes a selectable grouping option in the toolbar.

On disk, sections are ## Section Name (H2) headers beneath the list’s # Title, with card lines grouped under each header. See the collection and wanted command docs for the file format.

Change Printing… reopens the same printing picker used when adding a card — starting directly on the printing-selection step for the card you clicked. Pick a printing (and finish/condition, where applicable) to retarget the card.

When the card represents more than one copy (a Deck Editor entry with quantity > 1, or a Collection Editor tile that groups identical copies), a prompt first asks how many of the N copies should get the new printing:

  • Decks — Changing all copies retargets the entry in place (logged as a single set-printing change). Changing only some copies decreases the entry’s quantity by that amount and adds the same number of copies of the new printing under a new card ID — logged as a quantity decrease plus a new add, so it is unambiguous which copies moved.
  • Collections — Each copy is its own single-card entry, so the chosen number of entries are retargeted individually (one set-printing change each). Untouched copies keep the old printing and re-group into a separate tile.
  • Wanted lists — Each row is a single entry and is retargeted directly.

Every printing change is recorded as a change event tagged with the card ID and the target printing, and appears in the changelog (e.g. Set "Lightning Bolt" printing to M10:146 [foil] &5).

All edits are tracked as in-memory change events until explicitly saved.

  • Changes button shows the count of pending changes and opens a dialog listing them
  • Additive changes (add card, set commander, set finish, set printing) are shown in green
  • Destructive changes (remove card) are shown in red
  • Opposite changes cancel out automatically (e.g., adding then removing the same card)
  • Card names in the changes dialog are clickable links that open the card detail modal
  • Hovering a card name shows a preview image of the card

A bar pinned to the bottom of the editor holds all editing controls, from left to right:

  • + Add Card — opens the card search modal (see Adding Cards)
  • Add Card Defaults — expands the defaults panel upward
  • Sections — opens the Manage Sections dialog
  • Changes — shows the pending-change count and opens the changes dialog
  • Undo — reverts the most recent change
  • Save Changes / Discard Changes
  • Save Changes — Writes the updated file and appends to the changelog. Disabled when there are no pending changes. Saving more than once without leaving the editor folds the later changes into the same session’s changelog entry (bumping its timestamp) rather than creating a new entry each time; reloading the file (or hitting a save conflict and reloading) starts a fresh session.
  • Discard Changes — Shows a confirmation dialog listing all changes that would be lost.

The same confirmation also appears automatically whenever you navigate away with pending changes — selecting a different file in the dropdown, switching the Decks / Collections / Wanted Lists type tab, moving to another page via the admin sidebar, or logging out. Confirming discards the pending changes and proceeds; cancelling keeps you on the current file with your changes intact. Changes you want to keep must be saved explicitly first.

Reloading or closing the browser tab with pending changes triggers the browser’s own “leave site?” prompt as a final safeguard.


Open Edit Lists (admin sidebar or Dashboard card) and select the Decks tab.

The button opens a context menu with:

  • Set as Foil — Mark the card as foil (greyed out if the printing doesn’t support foil)
  • Change Printing… — Pick a new printing for the card; for an entry with quantity > 1 you are first asked how many copies to retarget (see Change Printing)
  • Set as Commander — Move the card to the Commander section (supports multiple commanders)

The No specific printing shortcut is available — add a card without selecting a printing.

Condition (NM, LP, MP, HP, DMG) is optional and defaults to NM.

Cards can include optional printing metadata:

1 Sol Ring (2XM:1) [foil] [NM] &1
1 Lightning Bolt &2
4 Island &3

Fields in order:

  • (SET:CN) — Set code and collector number
  • [finish]nonfoil, foil, or etched
  • [condition]NM, LP, MP, HP, or DMG
  • &N — Persistent card ID (auto-assigned, used internally for change tracking)

All fields are optional and backwards-compatible with the basic format.


Open Edit Lists and select the Collections tab.

Collections correspond to .md files in the collections/ directory.

  • No Set as Commander — collections have no reserved Commander section (but support arbitrary user-named sections)
  • Printing required — the No specific printing shortcut is not available; a specific printing must be selected
  • Finish & condition required — both must be set for collection entries

Open Edit Lists and select the Wanted Lists tab.

Wanted lists correspond to .md files in the wanted/ directory.

  • No Set as Commander — wanted lists have no reserved Commander section (but support arbitrary user-named sections)
  • No condition — wanted lists track desired cards, not owned cards
  • Printing optional — cards can be added as name-only (cheapest printing), with a specific printing, or fully specified with a finish

FeatureDeck EditorCollection EditorWanted List Editor
Set as Commander
Change printing
Multi-copy printing split✅ Entry✅ Per-entry❌ Single rows
No specific printing✅ Allowed❌ Must select✅ Allowed
Condition field✅ Optional✅ Required❌ Not applicable
Finish field✅ Optional✅ Required✅ Optional
Sections✅ + reserved Commander✅ User-named✅ User-named
Add/rename/delete section
Move card to section
Changelog on save
Add Card Defaults✅ Set/F/C✅ Set/F/C✅ Set/F