Organizing a (high school student) robotics conference with Typst

So in my last showcase about how I handle private packages I mentioned PRIA, and the main thing we do is a student conference with robotics competitions called ECER. Since I’ve fallen in love with Typst (and also converted my colleague with whom I organize the event), we’ve gone all-in and are doing basically all typesetting tasks using Typst.

Just to be very clear about that: we are not publishing a journal or anything, and our audience are high school students – so don’t see this as a precedent for Typst in academia. It’s still a somewhat big event using Typst for a couple of printing materials, so that’s what this showcase is about.

Here are some examples of materials we used Typst for:

As you can imagine, using Typst made reusing assets and properties super easy. I have a module shared between all documents …

#import "assets/lib.typ" as assets

#let year = "2025"
#let count = 13

… that would be imported and used like this:

#import "../lib.typ": year, assets

...

#set document(
  author: "The ECER " + year + " team",
  title: [Botball #year Amendments for ECER, Version #version],
  date: date,
)

#assets.ecer-logo(width: 50%)

This document contains amendments to the game rules specified in the #year
Botball Game Review which are in effect for the European Botball region and the
PRIA Open competition at the European Conference on Educational Robotics #year.

And the PRIA assets that are not ECER specific are in a private package that I re-export from that shared library module:

#import "@pria/pria-assets:0.1.0": *

#let ecer-logo = image.with("ecer2025_color.svg")

Obviously not all of this is super exciting – putting some logos, text and arrows on a sheet of paper wouldn’t be hard in powerpoint either.

But I won’t have to do it again next year. I will change the ecer-logo function and a few other things, and it will show up in all documents.


By the time the conference rolls around, we’ll also need name badges, time tables, table cards, checklists, certificates, etc. I will update here once this gets done!

16 Likes

This past week we had our conference in Innsbruck (huge success imo) and I want to show some more of the Typst-powered printed materials we used:

We prepared flags for all relevant nationalities; the details then came directly out of a CSV export from our ticketing system. A bit of manual data cleaning was necessary – but not to accommodate Typst, just because not all orders had 100% correct data. In fact, we even had a diffing feature in our Typst script that would filter out entries we had already printed, to have an easier time dealing with late registrations.

The schedule on the back of the badge is also populated from a csv file, exported from our spreadsheet where we planned the event: each entry contained date, time, description and location. The by-day grouping is done in Typst, as is adding the color and symbol coding for locations and the legend. The same data and table was also used for the standalone conference schedule.

At the end of the event (which focuses on robotics competitions), we had to print certificates and prepare slides for the award ceremony. In the past we did this with InDesign, but Typst greatly simplified the process; we used to dread having to correct an error since redoing the InDesign workflow took quite a few steps. This year an error would cost us two minutes at the most.

Again, the data source was a csv file sorted by appearance in the award ceremony. For printing, we would filter by award type “certificate” (I’m cheating a bit here; I forgot to put that into the script so this year I filtered the csv manually – but in principle Typst makes this super simple) and for the slides I’d add a page with the recipient blanked out, which is just a few lines of Typst code.

These were just examples; there were also desktop wallpapers, certificates of participation (separate from awards), and various kinds of signs and labels – all with consistent, centrally configured color scheme and branding – but I think what you saw was a good overview. We don’t have a gallery on our website yet, but you can get a few impressions from our Instagram if you’re interested how our event looked.

10 Likes