Skip to content

Documentation

Pablo Martínez López edited this page Nov 10, 2026 · 12 revisions

Tapete wiki

English · Español

Tapete (called Proxy Builder until 4.0.0; see Rename to Tapete) is a desktop and Android app (Tauri 2 + Rust + React/TypeScript) to prepare, test and play Magic: The Gathering decks: library, statistics, game table, friends, card editor and 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:.

Start here

If you want to… Read
Use the app User-Guide
Use it on a phone or tablet Mobile
Move decks to another device Deck-Sharing
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

Pages by area

Project and process

  • 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 (including the Android key), the Android APK, in-app updater.
  • Rename-to-Tapete: what the change from Proxy Builder to Tapete touched, what stays as it was and why.
  • Conventions: architecture, design-system, i18n and code rules with their rationale.

Architecture and Rust application

  • Architecture: layers, process boundaries, data locations, diagrams.
  • IPC-and-Error-Handling: every command, AppError, bindings, long jobs and events.
  • Rust-App-Layer: startup, AppState, the pbimg:// protocol, thumbnails, Tauri configuration, and the Android layer (tls.rs, ciclo.rs, the Kotlin plugin).

Data

Getting cards

Layout, images and PDF

  • 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.
  • The-Card-Stamp: the «Tapete · Not for sale» stamp on every printed or exported card, why it cannot be turned off, placement, languages and fonts.
  • Live-Preview: the sheet preview, slots, drag and drop, image unmounting.
  • Statistics: deck statistics, prices, probabilities.

Card designer

Game table

  • 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 and its links, host handover without a server, images over the network, absentees and expelling, relays.
  • Friends-and-Messages: friends, end-to-end encrypted messages and game invitations through the Tapete server: consent, signed requests, the encryption key, the safety number, the sync loop, links and the QR.

Mobile and moving decks

  • Mobile: the phone and tablet layouts, touch rules, the Back button, the life cycle, files and sharing on Android, TLS, limits and what has not been tried.
  • Deck-Sharing: sending and receiving decks between devices: nearby devices, the code and the QR, the offer, with or without proxies, replacing a deck that already exists.

Frontend

Languages

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.

Keeping the wiki current

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 also list.
  • 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.

Documentation · Documentación

Language: English · Español

Use and build · Uso y desarrollo

Architecture · Arquitectura

Data · Datos

Getting cards · Conseguir cartas

Layout, images, PDF · Maquetación, imagen y PDF

Card designer · Diseñador de cartas

Game table · Mesa de juego

Mobile · Móvil

Frontend · Frontend

Reference · Referencia

Clone this wiki locally