Create WordCamp badges with the Badge Designer

Design your attendee badges in wp-admin, place the attendees' names, Gravatars and QR codes over your own artwork, and get one print-ready PDF for the print shop. The PDF is made in your browser: no extra software, no spreadsheets, no scripts.

The Badge Designer editor in wp-admin: a WordCamp Europe badge with Matt Mullenweg's photo, name, job title and QR code, the toolbar on top and the settings sidebar on the right.
The editor, under Tickets › Badge Designer, showing the first attendee of the demo site.

This is a test version. CampTix Badge Designer is a standalone plugin for now, so organizers and the community can try it. Once it has been tested, it will be proposed for WordCamp.org as a new way to make badges in the CampTix Badge Generator plugin that every WordCamp site already has. This guide is meant to become part of the WordCamp Organizer Handbook.

Why a new way to make badges

Until now, WordCamp badges have been made in one of two ways, both described in the handbook:

The Badge Designer gives you the InDesign result with the effort of the HTML option:

Try it in your browser

The live demo runs a complete WordCamp-like site in your browser with WordPress Playground. Nothing to install, nothing to log in to.

Open the live demo

If the demo stops with "WordPress request transport did not start", an ad blocker or privacy extension is blocking Playground. Turn it off for playground.wordpress.net and reload.

Prepare the background

The background is your badge artwork without the attendee data: logos, colors, sponsors, the hole for the lanyard. Make it in any design tool, leaving room for the name, the photo and the QR code.

Size, bleed and safe area

Single or folded

Badges are usually printed in one of two ways, and you design only one side in both:

Make the background for one side, with bleed on all four edges, in both cases. The editor asks for the badge type when you choose the background, and you can change it later in Print size.

The Badge size and type dialog: the print size, and the badge type, Single or Folded, with Folded selected.
The badge type is asked every time you choose a background.
The preview of a folded badge: the same badge twice on a tall page, the top one upside down, joined at the dashed fold marks.
A folded badge in the preview: the top half upside down, and dashed fold marks at the fold.

File format

Choose the background

In the Document tab, open Background and choose the file from the Media Library (or upload it there).

The Background panel with demo-background.pdf, PDF vector, 112.5 × 159.2 mm, and the Replace and Remove buttons.

The editor then asks for the badge type, single or folded, and checks the background against the print size:

The editor at a glance

Your work is saved automatically a second after each change, and the toolbar says so ("Saved"). Close the page and come back later: everything is as you left it.

Width, height and bleed in millimeters of one side, the badge type (single or folded), the safe area, crop marks (on by default), a mark for the lanyard hole (on by default) and whether the guides are shown.

The Print size panel: width 102.5, height 149.2, bleed 5, the badge type Single or Folded, safe area 8.5, and the toggles Crop marks in the PDF and Show trim and safe area.

Add and arrange elements

A badge is made of elements over the background. There are three kinds: text boxes, the Gravatar and the QR code. A new design starts with the most common ones already in place: the Gravatar, the first name, the last name and the QR code. Add more with the + button in the toolbar.

The Elements panel lists them from the top layer down. Use the arrows to bring an element forward or send it backward, and the bin to delete it.

The Elements panel listing the QR code, the job title and country text, the last name, the first name and the Gravatar, each with arrows to change its layer and a delete button.

Text boxes

A text box holds text and variables, which are replaced with each attendee's data. Pick them from Insert variable or type them in braces:

VariableWhat it prints
{first_name}The first name.
{last_name}The last name.
{full_name}First and last name.
{username}The WordPress.org username, as @username. Nothing for attendees without one.
{question:job-title}The answer to a ticket question, here "Job title". Every question of your event is in the list, with its own name.

Mix them with your own text, for example {question:job-title} · {question:country}. When an attendee left a question empty, its separator goes too: the badge says "Italy", not "· Italy". Separators are ·, •, |, /, ,, ;, : and dashes. A variable with a typo is printed as typed, so you notice it.

The first name text box selected on the badge, and its settings in the Element tab: the text {first_name}, Insert variable, font Inter, and under it the warning that the font cannot print the characters of 7 attendees, with the Noto font to install for each script (Chinese, Korean, Devanagari, Tamil, Arabic, Hebrew, Thai) and Japanese in green, already printed with Noto Sans JP.

Each text box has:

Names are tidied up before they are printed: a name typed all in capitals or all in lowercase ("MARÍA", "garcía", "O'BRIEN", "MCDONALD") gets normal capitals ("María", "García", "O'Brien", "McDonald"). Names typed with mixed case, such as "DeLuca", are left as they are. Particles such as "de", "van" or "le" stay in lowercase before a surname ("de la Fuente", "van der Berg"), but not when they are the name itself ("Le Van").

Text that does not fit

A text box is always one line. When an attendee's text is longer than the box, it is made a little smaller, down to 80% of its size. That is enough for most long names, and the badges still look even on a lanyard.

If it still does not fit, it is cut after the last whole letter that fits and ends with an ellipsis (…), and the editor warns you so you can check it before printing: make the box wider, the text smaller, use a shorter variable, or fix the attendee's data in CampTix. There is never a second line, on purpose:

A badge where the long last name Rodríguez de Castro y Montenegro Fernández does not fit: it is cut with an ellipsis, the box has a red dashed border and a warning icon, and the Attendees panel lists the 2 attendees with text that is cut.
The box is marked in red on the canvas, and the Attendees panel lists every attendee affected. Click a name to jump to that badge.

Names in other scripts

Inter, the font included with the plugin, covers Latin (Vietnamese included), Greek and Cyrillic. It has no Japanese, Chinese, Korean, Indic scripts, Arabic, Hebrew or Thai. A font can only print the characters it has, so when the font of a text box lacks some characters of an attendee, that attendee's text prints in a fallback font, the first of these that has them all:

  1. Inter. For example, Noto Sans JP lacks some Central European letters, so "Łukasz" prints in Inter at an event that uses Noto Sans JP.
  2. The Noto font of the script, if it is installed: Noto Sans JP for Japanese, Noto Sans KR for Korean, and so on (see the table below).

You do not choose the fallback fonts: you only install them. Install them from Appearance › Fonts (the font names in the editor's warnings link there), in the Install Fonts tab, then reload the badge editor so it sees them. Leave them inactive if the event's website does not use them: they do not load on the site, and the badge editor still uses them. The weight closest to the box's is used.

When no installed font can print an attendee's text, the box is marked in red and you see exactly what would print: empty boxes where the characters should be. The warning under the font selector is your checklist: it lists, by script, the font to install, with the scripts already solved in green. Once everything is solved, the warning goes. The Attendees panel shows a table of the scripts your badges need, with the number of attendees and the font that prints each or the one to install, lists the attendees still left, and Generate PDF counts them. Kanji count as Japanese when the attendee also writes kana or Noto Sans JP prints them, and as Chinese otherwise.

For an event where most attendees write their names in another script, also pick a font that has it as the font of your text boxes. These Noto fonts also have the common Latin letters, so names in Latin print with them too:

ScriptFont to install
JapaneseNoto Sans JP
ChineseNoto Sans SC (simplified) or Noto Sans TC (traditional)
KoreanNoto Sans KR
Devanagari (Hindi, Marathi, Nepali)Noto Sans Devanagari
Bengali, Tamil, Telugu, Kannada, Malayalam, Gujarati, GurmukhiNoto Sans Bengali, Noto Sans Tamil, and so on
HebrewNoto Sans Hebrew
ThaiNoto Sans Thai
ArabicNoto Sans Arabic

Noto Sans Arabic has no Latin letters. A box that mixes Arabic and Latin, such as a name and a country in one line, cannot print in any single font: split it into two boxes.

Gravatar

The attendee's Gravatar, from the email address they bought the ticket with.

The Gravatar selected on the badge, with its settings: shape round or square, and the option for attendees without a Gravatar.

Before printing, remind your attendees to add a photo to Gravatar with the email address of their ticket. You can email them all from Tickets › Tools › Notify.

QR code

A QR code that opens the attendee's WordPress.org profile, so other attendees can find them after the event.

The QR code selected on the badge, with its settings: the Transparent background toggle.

Check every badge

The canvas shows one attendee at a time. Use the arrows in the toolbar, Page Up and Page Down, or type a number, to go through them: very long names, attendees without a Gravatar or without a username, empty answers.

The Attendees panel sums it up: how many attendees there are, the option to fix names written in all caps or all lowercase, how many have no WordPress.org username, and which ones have text that is cut. View list shows them all in a table.

The Attendees panel: 140 attendees in purchase order, the Fix names written in all caps or all lowercase toggle with 19 attendees written that way, 55 without a WordPress.org username, source CampTix, a warning listing the 2 attendees with text that is cut, the Other scripts table (Japanese printed with Noto Sans JP in green; Chinese, Korean, Devanagari, Tamil, Arabic, Hebrew and Thai with the font to install), a warning listing the 7 attendees whose characters no installed font can print, and the View list button.

Only paid tickets get a badge. Tickets bought for someone who has not filled in their details yet are left out until they do.

Preview and generate the PDF

Preview one badge

Preview badge makes the PDF of the attendee on screen and shows it, exactly as the print shop will get it, crop marks included. Download it to print a test copy.

The Preview dialog showing the one-page PDF of Matt Mullenweg's badge with crop marks, 124.5 × 171.2 mm.

Generate all the badges

Generate PDF makes one PDF with one page per attendee. Before you start, it tells you how many badges there are, the page size, and how many have no QR code or have text that is cut.

The Generate PDF dialog: pages All (1–140) or A range, Attendees Everyone, and the summary: 140 badges, 124.5 × 171.2 mm pages with crop marks, 55 without a QR code, 2 with text that is cut, 7 with characters the font cannot print.

Print only some attendees

If your site uses CampTix admin flags (Tickets › Setup › Admin Flags), Attendees in the Generate PDF dialog prints only the attendees with one flag: for example only the volunteers, or only the organizers. Set the flags on each attendee in CampTix.

Print in batches

Badges are numbered in purchase order, never alphabetically, so new tickets are always added at the end and never shift the ones you already printed. Choose A range to print in batches: send badges 1 to 250 to the print shop a few weeks before the event, and 251 onwards when ticket sales close.

The Generate PDF dialog with A range selected and the From and To fields.

Reuse a design

In the Document tab, Import/Export Design saves the design as a badge-design.json file and loads it on another site, for example to start next year's WordCamp from this year's badges.

The Import/Export Design panel with the Export JSON and Import JSON buttons.

Privacy

Help us test it

This plugin is being tested before it is proposed for every WordCamp site. You can help, whether or not you are organizing a WordCamp:

  1. Open the live demo.
  2. Make a badge of your own: replace the background with your WordCamp's artwork, change the print size, add a text box with a ticket question, try the Gravatar and QR code options.
  3. Go through the attendees and look for anything that looks wrong.
  4. Generate the PDF and open it. If you can, print a page at its real size and scan the QR code.
  5. Tell us what worked, what was confusing and what you missed.

Things we would especially like to hear about:

Share what you find in the proposal issue on GitHub: WordPress/wordcamp.org#2286. Screenshots help a lot.

Known limitations