This template is intended for all IACR conference websites (Crypto, Asiacrypt, Eurocrypt, CHES, FSE, PKC, RWC, and TCC). If you would like to use this for another event, see the non-IACR events section.
Caution
👹 DO NOT COPY OVER OLD CONFERENCE WEBSITES FROM YEAR TO YEAR! 👹
This template gets regular updates for bug fixes, performance, formatting, etc. The old templates are not compatible with the current version. Feature requests are welcome via Github Issues or you can contact Kay.
If you're an intermediate to advanced user and/or a confident DIYer, check out the comprehensive guide. Remember, it's open source so there's no warranty. You break it, that's what git blame is for.
These are the minimum initial changes you need to make to deploy the website. You will be working with includes/nav.php
, json/metadata.json
, callforpapers.php
, and contact.php
. (There is additional information about json/metadata.json
in the what's in metadata.json
section in the comprehensive guide.)
Important
Do not underestimate the amount of work a conference website requires. The after the quickstart section will give you a rough idea. There is also a comprehensive guide for more advanced usage.
Per the IACR general chair guidelines, you must submit your event to the calendar of events. Please note that you should include the presumed URL of the website, even though it is not yet available. As an example, for Crypto 2026, the URL would be https://crypto.iacr.org/2026/.
Once the event has been approved and is visible on the IACR website, you can construct your metadata.json file. You cannot put up the website prior to the event being approved. Event approval is required in order to construct your metadata.json
file, which in turn is required for the conference website.
In json/metadata.json
, you will add the names of the general and program chair(s). These will then appear on multiple pages across the site. You will also need to update the contact email addresses on contact.php
.
callforpapers.php
is one of the pages that is initially included in the includes/nav.php
and will need to be updated. It has generic information about stipends, awards, and the paper review schedule. All paper submission information should be added to papersubmission.php
.
Using the program committee creation form, you will generate your comm.json
. After adding your comm.json
, check that the program committee renders correctly on callforpapers.php
. Please do not attempt to make your comm.json
from scratch; the ID numbers that are supplied by the aforementioned program committee creation form are used in acknowleding committee involvement on CryptoDB. Maybe you can be the next person with the most IACR program committee memberships?
When you first clone the site, the only pages that are visible in the nav are index.php
, callforpapers.php
, sponsors.php
, and contact.php
. As you add additional pages to your website, you also need to update includes/nav.php
.
Section 8.10 of the IACR general chair guidelines requires an up-to-date code of conduct for each conference. You should edit conduct.php
accordingly. Sections that need editing will show up in red on the page because they are tagged with a class called “editMe”. This class is used throughout the site to indicate sections that need to be edited prior to launch.
This is a rough chronological list of what you will need to do after you have set up the initial website by completing the quickstart guide:
- Add paper submission information
- Open submission server and add the link to it
- Add accepted papers
- Add call for artifacts or affiliated events, if applicable
- Add venue & travel information
- Add tourism information, if applicable
- Add hotel and visa information
- Add financial support information page
- Add affiliated or co-located events pages, if applicable
- Add awards and invited talks pages, if applicable
- Add an updated code of conduct page
- Add registration information
- Open registration server and add link
- Add the program using the program editor
- Add rump session page, if applicable
- Update the program as there are changes to the schedule, talk title, and/or speakers
- Add session chairs, slides, paper links, and speakers to the program
- Add Zoom links if applicable, as well as links to session/talk videos
During the conference, you will also need to:
- Add announcements to main page, if applicable
- Update the program if there are last-minute schedule changes
- Open rump session submissions and add link
- Add rump session program once finalized
- Update author slides as they come in (some authors really leave it until the last minute 😩)
In addition to these steps, you may need to:
- Update the sponsors page as additional sponsorships come in
- Add a website update if there is a major schedule change or announcement
All this to say: do not underestimate the amount of work required to maintain the conference website.
While this template is not designed specifically for use by non-IACR conferences, it can certainly be used that way. If you would like to use this template for conferences outside of IACR, you will need to load Bootstrap via CDN in includes/head.php
and includes/footer.php
, rather than directly from iacr.org as it is currently written. You can also hire Kay on a freelance basis to handle your conference website, subject to her availability.
Detailed in this section are the types of things you can choose to handle yourself or you can pay Kay to do. It's open source so there's no warranty. You break it, that's what git blame is for.
You do not need to know Bootstrap per se, though if you are interested in doing more with the template, checkout out Bootstrap's documentation. At a basic level, Bootstrap is a framework that helps improve the appearance and organization of a website. The template is built to load Bootstrap straight from iacr.org. If you are using the template for a non-IACR conference you need to load Bootstrap via CDN.
You will need to have PHP installed, as it provides a basic server that is useful for testing. PHP is already installed on the iacr.org machine, but it's safest to work on your local machine. Ideally you will work with Github for version control and push changes directly to the IACR server when you are ready to launch.
In order to get started with the template, open a shell, change to your working directory, and clone the repository into same using
git clone https://github.com/IACR/conference-template.git .
To run a rudimentary web server while you are working, use php -S localhost:8000
. This will allow you to preview changes.
Go to http://localhost:8000 in your browser to see the website. Once you have verified the server is working, you can begin to edit the relevant files using a code editor of your choice (e.g., Emacs, SublimeText, Vi/Vim, Visual Studio Code, etc).
There are five JSON files you will edit when using this template. Each have their own specific formats that are required for the website to read them properly.
You should use IACR creation tools for construction of metadata.json
and comm.json
. papers.json
should be created through HotCRP in order to include the necessary information for accepted papers. Lastly, program.json
should be created and edited with the IACR program editor.
Note
Including the ID numbers of everyone listed in comm.json
and metadata.json
is important; this links service work done for IACR with names on CryptoDB. These IDs are added automatically when using the IACR creation tools.
The fifth JSON file is the only one created essentially from scratch and contains things like speaker name, whether the speaker is appearing in person or remotely, Youtube video links to the sessions/talks, links to slides, DOIS, and ePrint paper links. Historically, this file has not been edited by conference organizers as it is not well documented and time-sensitive. This section is kept vague on purpose, as the file would include encrypted links that appear on the website.
metadata.json
defines major information for the website, including:
- name, location, and dates of conference (includes longitude and latitude, which are used in the map on
travel.php
) - important dates like the first round notification, when rebuttals are due, and when final versions of accepted papers are due
- event type and ID number (required for IACR events)
- names and affiliations of general and program chair(s)
comm.json
contains the names and affiliations of the program committee. You can also include the area and/or artifact chair(s) in this file by adding:
"area_chairs": [
...
],
prior to "committee": [...]
. If you are using this for artifact chairs, don't forget to change the array name to "artifact_chairs".
papers.json
includes the paper IDs, abstracts, titles, authors and their affiliations, pubkey, and number of pages for all accepted papers. This file can be generated directly from HotCRP: once you have logged in to your HotCRP instance, click on IACR Integration on the right. Then on the left side menu, you click Accepted papers and there will be a button to download the accepted papers file.
program.json
is the most complicated of the JSON files and is what will fill in program.php
. To keep this explanation brief, program.json
includes things like days, timeslots, and talks. The IACR program editor will guide you through creating your program. Unfortunately, non-IACR events cannot use the program editor at this time.
First, check to see if a generic page already exists: there are already pages for tourism, visas, financial support and student stipends, accommodations and hotels, affiliated events, etc.
To create a new page, start by copying empty.php
and add a link to your new page from includes/nav.php
. If you create the new page in a subdirectory, you will need to change all of the include paths on the page (i.e., require “../includes/head.php”
)
In addition to deleting the file, you will need to make sure the page is not linked from includes/nav.php
.
The map on this page must be edited by hand, though the venue coordinates are drawn from json/metadata.json
. The section to be modified is:
var points = [{
name: 'Conference venue',
longitude: <?php echo $META['longitude']; ?>,
latitude: <?php echo $META['latitude']; ?>
},
{
name: 'Airport',
longitude: 34.424,
latitude: -119.8365
}
];
You can add additional points, such as nearby hotels, points of interest for tourists, banquet locations, etc. Do not change the venue location here; change that in json/metadata.json
.
By default, the map centers on the conference venue location. After adding additional points, you may find the map does not show them without zooming out. If this is the case, you can change the number at the end of the following line:
var mymap = L.map('venuemap').setView([<?php echo $META['longitude'] . ',' . $META['latitude']; ?>], 13);
Broadly speaking, everything on the website is customizable. There are certain assumed elements of structure, particularly in themes like styles/teal_theme.css
, but even those can be modified with some amount of work. You can preview themes by changing the theme stylesheet in includes/head.php
and then choose to modify one of those or create your own.
An important thing to remember when modifying themes is accessibility. Bootstrap mostly takes care of responsive web design concerns, and each additional theme in /styles
has been checked for color accessibility.
Design and accessibility are complicated but important topics. If this is the first time you're reading about the importance of accessibility or design, consider using one of the included themes as-is or hiring someone who is more knowledgeable.
Further recommended reading:
- Atomic design
- A brief history of web design for designers (1980s-2014)
- Colorsafe (theme generator for WCAG guidelines-compliant colors)
- Introduction to web accessibility
- Material design for web
- W3 on why accessibility matters
- WebAIM resources
At present there are 8 pre-made themes.
You can use the template demo if you prefer to see the themes in use. Here is a selection of past conferences that modified the conference template themes in various ways:
Any of these themes can be modified as desired, though remember that accessibility matters for any changes you make (see customization for a brief explanation on the importance of accessibility).
Depending on the theme you are using, you will need to take the positioning of the image into account. Generally speaking, you want to use a large high quality image. For shorter top banners, you want at least 1200px in width. For full-page background images, you should use no smaller than 1500x1500px. These are only guidelines and are not strict rules. Remember also that the larger the image, the more loading times will be impacted. SVG files will take the least time to load.