I am working on a prototype of a board game for which I need to design several cards. The cards will have several features like name, picture, text and some additional symbols. I am not sure which program would be the best for designing them.

First I thought about LaTeX - I have a template for generating the cards. The biggest advantage is, that when I decide to make a change in design, it is instantly applied to all the cards using this template. The disadvantage is, that making a design in TeX is a painful process and some special features are not very easy to manage in it...

Second choice would be Inkscape or similar vector-based editor. Is there some free library or model, which would make it easier to design a card from a scratch? What approach would you suggest?

Thanks for any tips!

  • If you decide to go with LaTeX, have a look at the Pgf/TikZ package. tex.stackexchange.com has lots of question about it and some people with impressive proficiency at designing graphics and intricate layout with LaTeX.
    – M. Toya
    Jul 15, 2013 at 11:57
  • 3
    I’m voting to close this question because this is asking for software recommendations.
    – Joe W
    Jan 3, 2021 at 18:53

13 Answers 13


EDIT (April 2017): I released the SVG-based software described in my original answer below for playing card design as a desktop application. You can learn more here:


Original Answer: I use custom SVG when designing playing cards. Inkscape uses SVG as its backend format. Coming from a web development background, I found SVG to be easier to learn than something like LaTeX. (It's just XML.)

I have a single external CSS file and a Ruby script using the "builder" library to construct the SVGs from a database. If you don't want to use a script to generate your SVGs, it is also possible to pass parameters to your SVG.

The most difficult aspect of SVG I have found is its compatibility with other formats. The only SVG rendering enging I've found to do a reliably good job is Apache Batik. You can use Batik to convert your SVGs to PDF, which of course is a widely accepted format. "Squiggle" is an SVG viewer that runs on top of Batik so that you don't need to render your SVGs every time you make a change.

  • 1
    I am not knew to TeX and Batik, since I, too, come from IT development background. I used batik + java architecture for generating svg files back in my old job. It just seems to be a bit too complicated to write a program from scratch to generate cards. I was thinking if there are some ready-made solutions already. However, I must admit that using batik did not occur to me when I asked this question :-) Maybe I will give it a try!
    – Smajl
    Jun 9, 2013 at 10:14
  • I was impressed at the simplicity of building the application. My current script is only 384 lines of Ruby (much of which is just markup for the XML builder library) and 124 lines of CSS (which has a lot of duplication; a SCSS version would be much shorter). My cards don't have pictures, but that is only a few lines of SVG if you already have the images. If you wanted to do more intricate card-by-card design, it's easy enough to fire up Inkscape and copy in the SVG code that it generates. :-)
    – sffc
    Jun 9, 2013 at 10:28
  • if you make the svg to size and want to lay them out yourself on a page, Scribus does a descent job of rendering SVG. I have made a nujmber of card based games with inkscape as design and scribus as my renderer. if you do it properly and pay attention to your bleeds, you can make double sided cards failry easily and they look good also.
    – Pow-Ian
    Jun 10, 2013 at 12:24
  • Wanted to mention that you don't need a custom program to flow cards into SVG. I have been able to accomplish this with some creative XSL.
    – Pow-Ian
    Jul 16, 2013 at 12:54

With a little setup work, Adobe InDesign can be a great tool for iterating on card designs. My process looks something like this:

  • Setup an XLS or Numbers file with all the data for my cards. Different columns for different stats, text, card names, etc. By having it in a spreadsheet, you can do a lot of analysis on the stats, and it makes it easy to change values.

  • Export the XLS to a CSV file.

  • Create a template in InDesign for a single card layout. Create placeholders in the template for dynamic data

  • Use the DataMerge feature in InDesign to pull in the CSV file. Drag the appropriate data values into the placeholders on the template.

  • Now you can push the Create Merged Document button, and the magic happens. It will use the data in your CSV file to create a card for each row in the file, filling in the placeholders with the appropriate data for each card. It will also lay them out and fit as many on a single page as possible - so it's easy to print and cut decks.

It takes some setup, but once you've got a template set up, you can change the data in the spreadsheet, re-import, and get a new set of cards. Great for heavy iteration cycles. You can also use this technique to pull in external image assets (PNG, JPG, AI). A little google searching should get you going pretty well.


Take a look at Magic Set Editor 2. It will let you define one or more templates for the structure of you cards. Each template can include a configurable background, classifications (such as manna color or team association) You can also define a number of editable text fields on the face of the card for title, descriptions and flavor text. Then, in application Magic Set Editor, you can create empty instances of a template and "fill in" text and other attributes. You need to use a custom scripting language to define these editable field and such, but this will let you avoid doing this tedious text editing you image editor.


I have been using GIMP to make all my cards. Since I make mostly print and play games, I have a single template I use with OpenOffice draw to allow the printing of 8 cards per page. After I have designed the card with GIMP, I save it as a JPEG, open the template in Draw, drag each JPEG file to it's place on the template, then save as a PDF.


I personally use a XML/XSLT/CSS approach:

  • All my cards are simple xml files with the stat and text
  • Then i transform them to a html file with the card structure using an XSLT style-sheet
  • Then i add all the visual design with css
  • The result is then converted to a png file

I use a python scrip to for this, the lxml library converts the xml to the html and weasyprint produces the png file

I understand that it may be a little complicated to design the html/css but it is the best choice in the long run, i can change the design of all my cards simply modifying some lines in the css file and double clicking the python scrip.

Creating the cards as drawing in GIMP or similar would make managing many cards near impossible.


I use Inkscape with the countersheet extension https://github.com/lifelike/countersheetsextension.

The extension will take a csv file and use some basic pattern matching to allow images and text to be defined per card.

Here's a getting started video http://www.dailymotion.com/video/xcf20p_intro-to-inkscape-boardgame-extensi_creation

My only tip would be to scale any raster images to the correct size before importing them to Inkscape, otherwise the svg will consume a lot of memory and be very slow.


I use Strange Eon 3. There are a lot of templates for different cards (most of them for the Boardgame Arkham Horror based on the novels from H.P. Lovecraft).

Here's the link: http://cgjennings.ca/eons/

  • Can you create your own templates with Strange Eon 3? Nov 15, 2014 at 12:35
  • 2
    @CaptainPhoenix - Strange Eons 3 (it's actually plural) can be extended to support new games by creating new plug-ins. Plug-ins would then contain the templates for the various types of cards, tokens, etc. in the new game. You do need to know a bit of programming, either in Java or JavaScript. However, to make it easier, Strange Eons does include basement.cgjennings.ca/The+Plug-in+Authoring+Kit which contains a lot of example scripts, so you could probably copy quite a bit from there.
    – rmunn
    Nov 18, 2014 at 6:42

If you're doing basic prototyping for the game, consider using HTML/CSS.

It's not as glamourous, but it can be a lot faster to move elements around to test things.

You'll need something more 'shop-ish when you get to actual card elements design, but on the plus side you'll already have a template of what you want things to look like!


Illustrator is what I design all my cards in. Its pretty simple and easy and there are TONs of tutorials and books to learn from.

It also plays well with all the other Adobe software if you need to do raster graphics or layout design, etc.

Its also an industry standard in the graphic design community.


Many people like Nandeck (google it). Nearest comparable would be Magic Set Editor, already mentioned above.


Similarly to InDesign, you can use Adobe Photoshop to generate a file for each different card.

  1. Set up the template the way you prefer, most important being the colour profile (ISO Coated v2 300% (ECI) is highly recommended if you're planning to print it professionally or even for services like Printerstudio)
  2. Give names to your layers
  3. Set up the Excel or Google Docs table with card data like names, costs and so on
  4. Download the table in CSV format
  5. Open Image > Variables > Define to set up which layers should get changed
  6. Import the CSV file. If it didn't turn out the way you wanted, then http://www.richmediacs.com/user_manuals/RMCS_PS_Training/Using%20PS%20Variables/UsingVariablesInPS_EXTERNAL.html has a lot of good tips on how to make it work better
  7. Choose File > Export > Data Sets as Files... to generate a new PSD file for each card
  8. (Optional step) It's not well known, but JPEG files can be in CMYK format and in case of Printerstudio, it's recommended to convert your PSD files to JPEG using File > Scripts > Image Processor.... Just make sure that Convert to RGB is unchecked.

If you are looking for a solution that is quick and does not require coding skills, Paperize is a great choice, although it is limited to a set of pre-designed templates. It's currently in beta, but they usually send out new invites quickly.

If you want more control Squib is a ruby based package specifically tailored for designing cards, and has some very useful built-in functions, including support for stitching cards into print-and-play sheets, and embedding graphics in the flow of text. It's fairly well documented, and the documentation is (not-entirely-successfully) aimed at novice programmers.


Cocktail (https://cocktail.software/) is an easy to use, layer-based layout editor, that links to google sheets for card data, and has a set editor for creating decks of cards to be exported together. You can link multiple spreadsheets to multiple layouts based on column value, or set a single layout per spreadsheet. The layout editor is a wysiwyg, click and drag editor. It has a fantastic layout engine that supports opacity masking, alignment, auto-sizing, grouping, and grid and stack layers for laying out child elements automatically. It supports images, svg drawings, text areas, shapes like ellipse, rectangle, regular polygon, star, and more. For as powerful as it is, it requires no coding skill to make great layouts easily. Be sure to check it out.

This is a software that I created.

  • 3
    Hi Dan, and welcome to the site. Although you're welcome to share your software here, you must disclose your affiliation with your work or it may be removed as spam. Please see our self-promotion guidelines, aptly titled How to not be a spammer. Aug 1, 2020 at 23:08

Not the answer you're looking for? Browse other questions tagged .