About

Deck Designer is an application for streamlining the design of card games. Our application is tailored to efficiently design cards for your card games. There is a lot of repetitive work in the creation of cards for card games. Our application eliminates most of this repetitive work. We provide tools to quickly and efficiently design your own card game in one powerful and user-friendly application.

The above images shows an example of a card layout

The above image shows the data types in Deck Designer

The above image shows how types interact in Deck Designer

Many card games have similar card layouts. We utilize layout reuse to avoid duplicate work. We use three different data types to accomplish this: Categories, Layouts, and Cards. Categories have fields, fields are used to specify variable data each card has. Layouts have elements, elements can be static (the same for each card) or field based (different for each card). Field based elements correspond to category fields, in other words these are dynamic elements that are different for each card. Cards have field values, field values are the values that you set the category fields to for a specific card.

The way that Categories, Layouts, and Cards work together enforces layout reuse. Cards belong to categories. Categories have a front and a back side layout. In the layout editor you can modify the front and/or back side layout of a card and these modifications will affect the layout of every card in the category. When a layout is updated all cards with that layout are automatically updated to reflect the change in layout. This is a major advantage Deck Designer provides its users. Any minor or major change to layout automatically updates the cards associated with that layout, so users won't have to manually go through and update each card with that layout, which would be a time consuming and error prone process.

The above image shows a screen shot of the Category Viewer in Deck Designer with category inheritance

Some cards may just have slightly different layouts from each other. Layouts can differ simply by having an additional field, an element may be in a different position, or a field may be replaced by a different field. Deck Designer has a solution for this too, category inheritance. Category inheritance allows fields to be inherited and/or overwritten. This operates very similar to polymorphism in Object-Oriented Programming. Fields with the same name are considered to be the same so if a child category has a field with the same name as a field inherited from the parent category the child's field will overwrite the parent's field. This could allow you to do something like change a text field to a color block field. Category inheritance allows for even less repetition in work, layouts that are similar can have a parent-child or sibling relationship with each other, so entirely new layouts won't have to be created from scratch.


Deck Designer is a desktop application. It is coded in Typescript. Deck Designer is built using Tauri. We utilize React for the Deck Designer's UI. Projects are saved to SQL databases locally in the APPDATA directory using SQLite. Deck Designer can work entirely offline, users do not need an internet connection to work on their projects, but we do have servers that were created using Swagger. These servers can be used to share your projects with your friends or work together with your team on projects.