Repository navigation
Documentation
English · Español
Proxy Builder is a desktop app (Tauri 2 + Rust + React/TypeScript) for building Magic: The Gathering proxy decks and exporting them to a print-ready PDF. This wiki is the reference for understanding, extending, debugging and rebuilding it. The user-facing presentation is the repository README.md.
Every page describes the code as it is now, with real file paths and symbols, and tries to explain why things are built the way they are. Anything not verified in the code is marked Inferred:.
| If you want to… | Read |
|---|---|
| Use the app | User-Guide |
| Build and run it | Development-Setup |
| Understand the whole system in ten minutes | Architecture |
| Know the rules every change must follow | Conventions |
| Look up a term | Glossary |
| Find which file does what | File-Index |
- Development-Setup: prerequisites, pnpm policy, commands, bindings, hooks.
-
Testing-and-CI: vitest, cargo tests, golden tests, every
pnpm check*gate, the CI workflows. - Releases-and-Auto-Updates: the release script, signing model, in-app updater.
- Conventions: architecture, design-system, i18n and code rules with their rationale.
- Architecture: layers, process boundaries, data locations, diagrams.
-
IPC-and-Error-Handling: every command,
AppError, bindings, long jobs and events. -
Rust-App-Layer: startup,
AppState, thepbimg://protocol, thumbnails, Tauri configuration.
-
Deck-Model:
Deck,DeckCard, sources, marks, print settings. - Storage-and-Blobs: SQLite schema and migrations, blob store, cache, data directories.
-
Deck-Package-Format: the
.pbdeckfile. - Deck-Library: the deck library (tags, favourites, notes, covers, offline details).
- Decklist-Parsing: accepted list formats, the parser, the list exporter, Archidekt import.
- Scryfall-Integration: client, resolution pipeline, languages, search, token detection.
- External-Sources: the allow-listed non-Scryfall sources (Cockatrice, magicthegathering.io, MTGJSON).
- Card-Identification-and-OCR: linking custom images to real cards, OCR, batch linking.
-
Layout-Engine:
PagePlan, the single geometry for screen and paper. - Imaging-and-PDF: framing, bleed, corners, the PDF writer.
- Export: the export job, presets, list export.
- Live-Preview: the sheet preview, slots, drag and drop, image unmounting.
- Statistics: deck statistics, prices, probabilities.
- Designer-Overview: concepts and how the designer fits in.
-
Designer-Engine: the rendering engine (
proxy-core::diseno). - Designer-Composition: multi-face cards, layouts, abilities, bodies.
- Frame-Packs: the pack format, built-in, Original and downloadable packs, free fonts.
- Designer-App-Layer: the Tauri side of the designer.
- Designer-UI: the «Diseñar» view.
- Card-Editor-Dialog: «Editar carta».
-
Game-Engine: the pure engine of the game table (
crates/mesa): model, actions, randomness, visibility, undo and replay, teams, turn order, deaths, best-of encounters and the summary of a game. - Game-Table: the «Jugar» tab: the session around the engine, image preparation, saving and resuming, mat, board, several players (local game, layouts, teams, formats, deaths), drag, menus, shortcuts, the log and the chat, the end summary, history and replay, sounds and settings.
- Online-Play: online games: iroh P2P with a host and guests, the direct code, the room server (identity without accounts, playgroups, rooms, host election and migration), images over the network, absentees and expelling, the own relay and deployment.
- Frontend-Architecture: structure, shared components, build config.
- State-Stores: the zustand stores and their data flow.
-
Internationalization:
t(), dictionaries, the three kinds of language. - Themes-and-Skins: themes, skins, materials, tweakcn themes.
- Settings-and-Shell: the app shell and the settings dialog.
- Tutorials: the guided tour of each screen and the help button.
- Decklist-Panel, Add-Card-and-Variants, Set-Browser: the card-getting dialogs and panels.
English is the reference language. Every page also exists in Spanish under its translated title (for example User-Guide is Guía de usuario); a language bar under each title and the paired links in the sidebar switch between them. Spanish index: Documentación.
The wiki is part of the definition of done: any change that adds, modifies or removes a feature, command, setting, format, migration, architecture rule or release step updates the affected pages in the same piece of work. Page conventions:
- Flat files named
Page-Name.md; links written[Text](Page-Name)without.md. - Each page starts with a one-to-three sentence summary and ends with a
## See alsolist. - Paths and symbols in backticks, checked against the code; uncertain claims marked Inferred:.
- Mermaid for diagrams. No secrets, no local absolute paths, no dates or personal names.
- New pages are linked from this page and from the sidebar, in every language, and every change is applied to all language versions.
Use and build · Uso y desarrollo
- User-Guide · Guía de usuario
- Development-Setup · Preparación del entorno de desarrollo
- Testing-and-CI · Tests y CI
- Releases-and-Auto-Updates · Versiones y actualizaciones automáticas
- Conventions · Convenciones
Architecture · Arquitectura
- Architecture · Arquitectura
- IPC-and-Error-Handling · IPC y manejo de errores
- Rust-App-Layer · Capa de aplicación Rust
Data · Datos
- Deck-Model · Modelo del mazo
- Storage-and-Blobs · Almacenamiento y blobs
- Deck-Package-Format · Formato del paquete de mazo
- Deck-Library · Biblioteca de mazos
Getting cards · Conseguir cartas
- Decklist-Parsing · Parseo de la lista del mazo
- Scryfall-Integration · Integración con Scryfall
- External-Sources · Fuentes externas
- Card-Identification-and-OCR · Identificación de cartas y OCR
Layout, images, PDF · Maquetación, imagen y PDF
- Layout-Engine · Motor de maquetación
- Imaging-and-PDF · Imagen y PDF
- Export · Exportación
- Live-Preview · Vista previa en vivo
- Statistics · Estadísticas
Card designer · Diseñador de cartas
- Designer-Overview · Visión general del diseñador
- Designer-Engine · Motor del diseñador
- Designer-Composition · Composición del diseñador
- Frame-Packs · Packs de marcos
- Designer-App-Layer · Capa de aplicación del diseñador
- Designer-UI · Interfaz del diseñador
- Card-Editor-Dialog · Diálogo Editar carta
Game table · Mesa de juego
Frontend · Frontend
- Frontend-Architecture · Arquitectura del frontend
- State-Stores · Stores de estado
- Internationalization · Internacionalización
- Themes-and-Skins · Temas y skins
- Settings-and-Shell · Ajustes y shell
- Tutorials · Tutoriales
- Decklist-Panel · Panel de la lista del mazo
- Add-Card-and-Variants · Añadir carta y variantes
- Set-Browser · Explorador de sets
Reference · Referencia