Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ACM COMPUTE Regional Event Documentation

Welcome to the official documentation for hosting an ACM COMPUTE Regional Event (CRE).

This guide will help you set up your event website using the ACM CRE template.

New to CREs? Learn what a COMPUTE Regional Event is.

Who is this for?

Students, faculty, and organisers setting up a COMPUTE Regional Event at their university.

What you’ll end up with

A website for your event that includes:

  • Event schedule
  • Speaker and organiser profiles
  • Venue information
  • Registration (via embedded form)
  • Sponsor showcase

Time required

About 30 minutes for initial setup, then ongoing customisation as you add content.

Setup

This guide will help you set up the ACM CRE template on your computer.

Before you begin

You will need:

We recommend creating a GitHub organisation for your event. This gives you a cleaner URL:

SetupURL
Organisationhttps://acm-cre-university.github.io
Personal accounthttps://username.github.io/acm-cre-university

To create an organisation:

  1. Click the + icon at the top-right of any GitHub page
  2. Select New organization
  3. Choose GitHub Free (organisations are free)
  4. Name it something like acm-cre-youruni
  5. Complete the setup

See GitHub’s guide on creating organisations for more details.

Step 1: Open your terminal

macOS

Press Cmd + Space, type “Terminal”, and press Enter.

If you have not used Git before, macOS will prompt you to install developer tools when you first run a Git command. Follow the prompts to install them.

Windows

  1. Install Windows Terminal from the Microsoft Store
  2. Install Git from git-scm.com/download/win
  3. Restart Windows Terminal after installation

Verify Git is installed:

git --version

Linux

Open your terminal (Ctrl + Alt + T on most distributions) and install required packages:

Ubuntu / Debian:

sudo apt update
sudo apt install git curl build-essential

Fedora:

sudo dnf install git curl gcc make

Arch Linux:

sudo pacman -S git curl base-devel

Step 2: Install mise

mise manages programming language versions. Run this command:

curl https://mise.run | sh

Activate mise in your shell

After installation, add mise to your shell configuration.

macOS (zsh):

echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc

Close Terminal completely (Cmd + Q) and reopen it.

Windows PowerShell:

Add-Content -Path $PROFILE -Value 'eval "$(~/.local/bin/mise activate pwsh)"'

Windows Git Bash:

echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

Close and reopen Windows Terminal.

Linux (Bash):

echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
source ~/.bashrc

Linux (Zsh):

echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc

Verify mise is installed

mise doctor

You should see “No problems found”. If you see errors, check the mise installation docs.

Step 3: Create your repository

  1. Go to github.com/ACM-CRE/website-template
  2. Click Use this template > Create a new repository
  3. Under Owner, select your organisation (or personal account)
  4. Name your repository:
    • For organisations: acm-cre-university.github.io
    • For personal accounts: acm-cre-university
  5. Click Create repository

See GitHub’s guide on creating from a template for more details.

Clone your repository

git clone https://github.com/YOUR-ORG/acm-cre-university.github.io.git
cd acm-cre-university.github.io

Replace YOUR-ORG and acm-cre-university with your actual organisation and repository names.

Step 4: Install Ruby and dependencies

Tell mise to trust this project and install Ruby:

mise trust
mise install

This downloads and installs Ruby 3.4.

Install the project dependencies:

bundle install

Step 5: Run the website locally

bundle exec jekyll serve

Open http://localhost:4000 in your browser.

You should see the example event website.

To stop the server, press Ctrl + C.

Next steps

Having issues?

See the Troubleshooting guide for solutions to common problems.

Deployment

Publish your site for free using GitHub Pages.

First-time deployment

Step 1: Deploy

From your project folder:

bundle exec rake deploy

This builds your site and pushes it to a gh-pages branch.

Step 2: Configure GitHub Pages

  1. Go to your repository on GitHub
  2. Click Settings (top menu)
  3. Click Pages (left sidebar)
  4. Under Source, select Deploy from a branch
  5. Select gh-pages branch and / (root)
  6. Click Save

See Configuring a publishing source for more details.

Step 3: Wait for deployment

GitHub will build and deploy your site. This takes 2-5 minutes.

Your site will be available at:

SetupURL
Organisationhttps://acm-cre-university.github.io
Personal accounthttps://username.github.io/acm-cre-university

Updating your site

After making changes locally:

  1. Test locally with bundle exec jekyll serve
  2. When ready, run bundle exec rake deploy

Changes go live in a few minutes.

Next steps

Having issues?

See the Troubleshooting guide for solutions to common deployment problems.

Organisers

Configure your host institution and partner organisations in _data/config/organisers.yml.

These logos and links appear in the site header, footer, and flyer.

Structure

host:
  name: "Your University"
  logo: "/assets/images/organisers/host-logo.svg"
  url: "https://youruniversity.edu"

partners:
  - name: "ACM iSIGCSE"
    logo: "/assets/images/organisers/acm-isigcse-768x256.jpg"
    url: "https://isigcse.acm.org"
  - name: "ACM India Council"
    logo: "/assets/images/organisers/acm-india-council.svg"
    url: "https://india.acm.org"
  - name: "ACM SIGCSE"
    logo: "/assets/images/organisers/acm-sigcse.png"
    url: "https://sigcse.org"

Host institution

The host section configures your university or organisation:

FieldRequiredDescription
nameYesInstitution name (used in alt text and footer)
logoYesPath to logo file
urlYesLink to institution website
  1. Prepare your logo (SVG recommended, PNG also works)
  2. Recommended size: approximately 330×125 pixels
  3. Save to assets/images/organisers/host-logo.svg
  4. Update the logo path if using a different filename

The template includes a placeholder logo. Replace it with your institution’s logo.

Partner organisations

The partners array lists ACM organisations that co-host the event. These logos appear alongside your host logo in the header and footer.

FieldRequiredDescription
nameYesOrganisation name
logoYesPath to logo file
urlYesLink to organisation website

For standard CRE events, keep the default ACM partner logos (iSIGCSE, India Council, SIGCSE). These are already included in the template.

Where these appear

  • Header: Host logo and ACM iSIGCSE logo in the navigation bar
  • Footer: All organiser logos with links
  • Flyer: All organiser logos at the top

Logo tips

  • Use SVG format when possible (scales without quality loss)
  • For PNG/JPG, use high resolution (2x display size)
  • Ensure logos have transparent backgrounds
  • Keep file sizes reasonable (optimise for web)

Next steps

Configure your Event Details (name, date, location).

Event Details

Configure your event’s basic information in these files:

  • _data/config/organisers.yml for host institution and partners (see Organisers)
  • _data/config/site.yml for event details
  • _config.yml for site settings

Site settings

Edit _config.yml for basic site configuration:

title: "ACM COMPUTE Regional"
description: "Regional event for computing educators and researchers"
url: "https://acm-cre-university.github.io"
baseurl: ""
lang: en

Event information

Edit _data/config/site.yml for event-specific details.

Basic information

event_name: "ACM COMPUTE Regional Event"
tagline: "For Computing Educators & Researchers"
date: "2026-03-21"
date_display: "Saturday, March 21, 2026"
time: "9:30 AM - 6:00 PM"

The date field uses ISO format (YYYY-MM-DD) for sorting. The date_display field is shown to visitors.

Location

location:
  name: "Your University"
  address: "123 Main Street, City, Country"
  url: "https://youruniversity.edu"
  map_url: "https://maps.app.goo.gl/your-map-link"
  map_embed_url: "https://www.google.com/maps/embed?pb=..."

To get the map_embed_url:

  1. Open Google Maps and find your venue
  2. Click Share > Embed a map
  3. Copy the URL from the src attribute

Registration

registration:
  free: true
  form_url: "https://tally.so/r/your-form-id"

The template supports embedded forms from Tally, Google Forms, Typeform, or any service that provides an embed URL.

social:
  email: "cre@youruniversity.edu"
  host_website: "https://youruniversity.edu"
  host_twitter: "https://x.com/YourUniversity"
  host_instagram: "https://instagram.com/youruniversity"
  isigcse_website: "https://isigcse.acm.org/home/"
  isigcse_twitter: "https://x.com/isigcse"

The host_* keys are for your institution’s social links. The isigcse_* keys link to ACM iSIGCSE. Remove any links you don’t need.

Accommodation (optional)

accommodation:
  available: true
  name: "University Guest House"
  location: "On campus"
  price: "INR 1,500 per night"

Set available: false or remove this section if you’re not offering accommodation.

Sponsorship (optional)

sponsors:
  seeking: true
  form_url: "https://tally.so/r/sponsorship-form-id"

Set seeking: false when you’ve finished collecting sponsors.

Complete example

event_name: "Delhi University COMPUTE Regional Event"
tagline: "Empowering CS educators across North India"
date: "2026-04-15"
date_display: "Wednesday, April 15, 2026"
time: "9:00 AM - 5:30 PM"

location:
  name: "Delhi University, North Campus"
  address: "University Road, Delhi 110007, India"
  url: "https://du.ac.in"
  map_url: "https://maps.app.goo.gl/example"
  map_embed_url: "https://www.google.com/maps/embed?pb=..."

registration:
  free: true
  form_url: "https://tally.so/r/your-form-id"

social:
  email: "cre@du.ac.in"
  host_website: "https://du.ac.in"
  host_twitter: "https://x.com/DelhiUniv"

accommodation:
  available: true
  name: "University Guest House"
  location: "North Campus"
  price: "INR 1,200 per night"

sponsors:
  seeking: false

Next steps

Set up your Schedule to add sessions and speakers.


Tip: If you haven’t already, configure your Organisers (host institution and partner logos) first.

Schedule

Configure your event schedule in _data/content/schedule.yml.

Basic structure

The file contains a flat array of sessions:

- time: "09:00"
  end_time: "09:30"
  title: "Registration & Coffee"
  type: break

- time: "09:30"
  end_time: "10:30"
  title: "Opening Keynote"
  type: keynote
  speaker: "jane-doe"
  description: "Welcome and introduction to the event."

Session fields

FieldRequiredDescription
timeYesStart time (24-hour format)
end_timeNoEnd time
titleYesSession title
typeYesSession type (see below)
descriptionNoShort description (1-2 sentences)
speakerNoSingle speaker ID
speakersNoArray of speaker IDs
facilitatorsNoArray of facilitator IDs

Session types

Each type has a different colour on the schedule:

TypeUse for
keynoteMain talks
workshopHands-on sessions
discussionPanel discussions, Q&A
breakCoffee, lunch, registration
ceremonyOpening, closing, awards

Linking speakers

The speaker field should match a speaker’s ID from speakers/en.yml:

# In schedule.yml
- title: "Keynote"
  speaker: "jane-doe"

# In speakers/en.yml
keynote:
  - id: "jane-doe"
    name: "Dr. Jane Doe"

Multiple speakers

For sessions with multiple speakers, use the speakers array:

- title: "Panel Discussion"
  type: discussion
  speakers:
    - "jane-doe"
    - "john-smith"

Facilitators

For workshops with facilitators, use IDs from speakers/en.yml:

- title: "Educator Workshop"
  type: workshop
  facilitators:
    - jane-doe
    - john-smith
  description: "Hands-on session for CS educators."

Facilitator IDs must match entries in the facilitators section of your speakers file.

Complete example

- time: "09:30"
  end_time: "10:00"
  title: "Registration"
  type: break
  description: "Registration, morning tea, and networking"

- time: "10:00"
  end_time: "10:30"
  title: "Opening"
  type: keynote
  speaker: "keynote-speaker"
  description: "Introduction to COMPUTE and regional events"

- time: "10:30"
  end_time: "11:30"
  title: "Discussion Forum"
  type: discussion
  facilitators:
    - jane-doe
    - john-smith
  description: "Group discussions on CS education challenges"

- time: "11:30"
  end_time: "13:00"
  title: "Workshop: Experience Reports"
  type: workshop
  facilitators:
    - jane-doe
  description: "Hands-on session for writing experience reports"

- time: "13:00"
  end_time: "14:00"
  title: "Lunch"
  type: break

- time: "17:30"
  end_time: "18:00"
  title: "Closing Ceremony"
  type: ceremony
  description: "Key takeaways and wrap-up"

Tips

  • Keep descriptions short (1-2 sentences)
  • Include buffer time for transitions
  • Test the schedule page locally to check formatting

Next steps

Add your People (speakers, facilitators, organisers).

People

Configure speakers, facilitators, and organisers in _data/content/speakers/en.yml.

Structure

keynote:
  - id: "jane-doe"
    name: "Dr. Jane Doe"
    affiliation: "University Name"
    photo: "/assets/images/speakers/jane-doe.jpg"

facilitators:
  - id: "john-smith"
    name: "John Smith"
    affiliation: "Another University"
    photo: "/assets/images/speakers/john-smith.jpg"

organisers:
  - id: "organiser-name"
    name: "Organiser Name"
    affiliation: "Your University"
    photo: "/assets/images/speakers/organiser-name.jpg"

Fields

FieldRequiredDescription
idYesUnique identifier (used for linking from schedule)
nameYesFull name
affiliationYesUniversity or organisation
photoNoPath to photo

About IDs

The id field links people to schedule sessions. The template includes placeholder IDs like facilitator-1 and facilitator-2. Replace these with meaningful IDs for your speakers:

# Template placeholder
- id: "facilitator-1"
  name: "Facilitator One"

# Your actual speaker
- id: "jane-doe"
  name: "Dr. Jane Doe"

Important: When you change an ID here, update all references in schedule.yml to match. See Schedule for details on linking speakers.

Adding photos

  1. Prepare a square photo (recommended: 400x400 pixels)
  2. Save it to assets/images/speakers/
  3. Reference it with the full path: /assets/images/speakers/filename.jpg

If a section has any photos, people without photos will show a placeholder with their initial.

Photo tips

  • Use square images for consistent display
  • Optimise for web (compress to reduce file size)
  • Use descriptive filenames (lowercase, no spaces)

Multiple languages

For Hindi (or other languages), create a corresponding file at _data/content/speakers/hi.yml with translated content.

Next steps

Add your Sponsors.

Sponsors

Configure sponsor tiers and logos in _data/content/sponsors.yml.

Structure

seeking_sponsors: true
sponsorship_email: "cre@youruniversity.edu"

tiers:
  - name: "Platinum"
    sponsors:
      - name: "Company A"
        logo: "/assets/images/sponsors/company-a.png"
        url: "https://company-a.com"

  - name: "Gold"
    sponsors:
      - name: "Company B"
        logo: "/assets/images/sponsors/company-b.png"
        url: "https://company-b.com"
      - name: "Company C"
        logo: "/assets/images/sponsors/company-c.png"
        url: "https://company-c.com"

Top-level fields

FieldRequiredDescription
seeking_sponsorsNoSet to true to show sponsorship enquiry section
sponsorship_emailNoEmail for sponsorship enquiries
FieldRequiredDescription
nameYesSponsor/company name
logoNoPath to logo (shows name if missing)
urlNoLink to sponsor’s website

Adding logos

  1. Get the sponsor’s logo (SVG preferred, PNG with transparent background also works)
  2. Recommended size: approximately 300×90 pixels (or similar aspect ratio)
  3. Save to assets/images/sponsors/
  4. Reference with full path: /assets/images/sponsors/logo.png

Logo tips

  • SVG format is preferred (scales without quality loss)
  • For PNG/JPG, use high resolution (2x display size)
  • Ensure logos have transparent backgrounds
  • Optimise file sizes for web (compress images)

The template includes a placeholder at assets/images/sponsors/sponsor-placeholder.svg. This shows “Sponsor Logo” with recommended dimensions. Replace it with actual sponsor logos, or use it as a reference for sizing.

If a sponsor doesn’t have a logo, their name will be displayed instead.

Tier display

Higher tiers display larger logos. The order in the file determines display order.

Minimal setup

If you don’t have tiered sponsorship, use a single tier:

tiers:
  - name: "Sponsors"
    sponsors:
      - name: "Sponsor Name"
        logo: "/assets/images/sponsors/logo.png"
        url: "https://sponsor.com"

Disabling sponsors

If you don’t have sponsors yet, disable the sponsors section. See Feature Toggles.

Next steps

Customise your site’s Styling (colours, fonts).

Styling

Customise colours, fonts, and spacing in _sass/_variables.scss.

Brand colour

The accent colour is used for buttons, links, and highlights:

$color-accent: #C45C3E;
$color-accent-hover: #A34D33;
$color-accent-light: rgba(196, 92, 62, 0.08);

When changing $color-accent, update the hover and light variants to match:

  • $color-accent-hover: slightly darker version
  • $color-accent-light: same colour at 8% opacity

Choosing a brand colour

Pick a colour that:

  • Matches your university/organisation branding
  • Has enough contrast with white (for accessibility)
  • Works for both light and dark elements

Use a contrast checker to verify accessibility.

Text colours

$color-text: #2D2D2D;         // Main text
$color-text-muted: #6B6B6B;   // Secondary text
$color-text-subtle: #9A9A9A;  // Tertiary text

Background colours

$color-bg: #FFFFFF;           // Main background
$color-bg-subtle: #F7F7F7;    // Subtle background (cards, sections)
$color-border: #E5E5E5;       // Borders

Typography

$font-family-sans-serif: "Outfit", system-ui, -apple-system, sans-serif;
$headings-font-weight: 600;
$font-weight-normal: 400;
$font-weight-semibold: 600;

The template uses Outfit by default. To use a different font:

  1. Add the font import to _includes/layout/head.html
  2. Update $font-family-sans-serif

Session type colours

Each session type on the schedule has its own colour:

$color-keynote: #C45C3E;      // Orange
$color-workshop: #2A7B72;     // Teal
$color-discussion: #5B7A9D;   // Blue
$color-ceremony: #C08B32;     // Gold
$color-break: #9A9A9A;        // Grey

Spacing

$space-xs: 0.5rem;   // 8px
$space-sm: 1rem;     // 16px
$space-md: 2rem;     // 32px
$space-lg: 3rem;     // 48px
$space-xl: 4rem;     // 64px

Layout

$container-max-width: 960px;  // Maximum content width
$text-max-width: 65ch;        // Maximum text line length

Border radius

The template uses sharp corners by default:

$border-radius: 0;
$border-radius-lg: 0;
$border-radius-sm: 0;

For rounded corners, try 0.25rem or 0.5rem.

After making changes

Restart Jekyll to see your changes:

# Stop current server (Ctrl + C)
bundle exec jekyll serve

Next steps

You’ve completed the basic customisation. For advanced options:

Custom Domain

You can use your own domain like cre.youruniversity.edu instead of the default GitHub Pages URL.

See About custom domains and GitHub Pages for an overview.

Step 1: Add CNAME file

Create a file called CNAME (no extension) in your repo root:

cre.youruniversity.edu

Step 2: Configure DNS

Add a CNAME record with your domain provider:

  • Name: cre (or your subdomain)
  • Value: acm-cre-university.github.io (your GitHub Pages URL)

Step 3: Enable in GitHub Pages

  1. Go to Settings > Pages
  2. Under Custom domain, enter your domain
  3. Check Enforce HTTPS (after DNS propagates)

DNS changes can take up to 48 hours to propagate.

See Managing a custom domain for detailed instructions.

Having issues?

See the Troubleshooting guide for solutions to common domain problems.

Adding Languages

The template supports multiple languages. By default, it includes English and Hindi.

How it works

  • Each language has its own string file in _data/strings/
  • Content pages are duplicated per language (e.g., _pages/ for English, hi/ for Hindi)
  • The language switcher auto-discovers available languages from the strings files

Adding a new language

Step 1: Create strings file

Copy _data/strings/en.yml to _data/strings/[code].yml:

cp _data/strings/en.yml _data/strings/es.yml

Edit the new file and translate all strings:

# _data/strings/es.yml
nav:
  home: "Inicio"
  schedule: "Programa"
  people: "Personas"
  register: "Registrarse"
  # ... translate all sections

Add your language to the language_switcher section:

language_switcher:
  label: "Idioma"
  en: "English"
  hi: "हिन्दी"
  es: "Español"  # Add your language

Step 2: Create content folder

Create a folder for your language:

mkdir es

Step 3: Create content pages

For each page in _pages/, create a translated version in your language folder.

Each page needs this front matter:

---
layout: home
title: "Bienvenidos"
lang: es
permalink: /es/
alternate:
  en: /
  hi: /hi/
---

Tu contenido traducido aquí.

The alternate field maps language codes to their page URLs. This enables the language switcher to link between translations.

Step 4: Update existing pages

Add your new language to the alternate field on existing pages:

# In _pages/index.md (English)
alternate:
  en: /
  hi: /hi/
  es: /es/  # Add this

Do this for all pages that have translations.

Speaker translations

For translated speaker information, create language-specific files:

_data/content/speakers/
├── en.yml
├── hi.yml
└── es.yml

Tips

  • Start with the most important pages
  • Keep the same file structure across languages
  • Test all language switcher links
  • Some content doesn’t need translation (dates, times, names)

Disabling multi-language

If you only need one language, disable i18n in _config.yml:

features:
  i18n: false

This hides the language switcher. See Feature Toggles.

Next steps

Feature Toggles

Control which sections of your site are enabled or disabled. Useful for events that don’t need all features, or while you’re still preparing content.

Configuration

Edit _config.yml and find the features section:

features:
  i18n: true        # Multi-language support and language switcher
  sponsors: true    # Sponsors page and section
  flyer: true       # Flyer page and spread-the-word flyer section
  venue: true       # Venue page

Set any feature to false to disable it.

Available toggles

FeatureWhat it controls
i18nLanguage switcher in header, alternate language pages
sponsorsSponsors page, sponsor logos on flyer
flyerFlyer page, flyer download cards on spread-the-word page
venueVenue page with location details and map

What happens when disabled

When you disable a feature:

  1. Navigation hides - Links to that section disappear from the menu
  2. Page shows notice - Direct URL visits see “Page Not Available” message
  3. SEO protected - Disabled pages get noindex meta tag so search engines skip them
  4. Related sections hide - In-page elements (like sponsor logos on flyer) are hidden

Pages aren’t deleted - they’re just hidden. Re-enable the feature anytime to bring them back.

Examples

Event without sponsors yet

features:
  sponsors: false

The sponsors page link disappears from navigation. If someone visits /sponsors/ directly, they see a friendly “Page Not Available” message.

Single-language event

features:
  i18n: false

The language switcher disappears from the header. Your site runs in one language only.

Minimal event site

features:
  i18n: false
  sponsors: false
  flyer: false
  venue: false

Just the essentials: home, schedule, people, and registration.

Feature toggles work with the navigation system. In _data/config/navigation.yml, items can specify which feature they require:

- label: sponsors
  url: /sponsors/
  feature: sponsors    # Only shows when sponsors feature is enabled

You don’t need to edit this for basic usage - the template is pre-configured. This is just for reference if you’re adding custom pages.

Re-enabling features

To re-enable a feature:

  1. Set it to true in _config.yml
  2. Restart your local server (Ctrl+C, then bundle exec jekyll serve)
  3. The navigation link and page content reappear

No content is lost when toggling features off and on.

Next steps

Quick Reference

A lookup table for finding which file to edit.

Configuration files

What to changeWhich file
Host institution & partner logos_data/config/organisers.yml
Event name, date, location_data/config/site.yml
Navigation menu_data/config/navigation.yml
Event schedule_data/content/schedule.yml
Speakers & organisers_data/content/speakers/en.yml
Sponsors_data/content/sponsors.yml
Colours & fonts_sass/_variables.scss
UI text (buttons, labels)_data/strings/en.yml
Feature toggles_config.yml

Customisation guides

TopicGuide
Host institution & partner logosOrganisers
Site identity, contact, registrationEvent Details
Sessions, times, speakersSchedule
Speakers, facilitators, organisersPeople
Sponsor tiers and logosSponsors
Colours, fonts, spacingStyling
Multi-language supportAdding Languages
Enable/disable sectionsFeature Toggles

YAML basics

YAML files use a simple format:

event:
  name: "My University CRE"
  date: "March 21, 2026"

Rules:

  • Indentation matters (use 2 spaces, not tabs)
  • Strings with special characters need quotes
  • Lists use dashes: - item

See yaml.org for the full specification.

Troubleshooting

Common problems and how to fix them.

Setup Issues

“command not found: mise”

Cause: mise isn’t in your PATH, or Terminal wasn’t restarted.

Fix: Close Terminal completely and reopen it. On macOS, use Cmd + Q to fully quit.


“command not found: bundle” or “command not found: jekyll”

Cause: Ruby isn’t installed or mise isn’t activated.

Fix: Check which Ruby is being used:

which ruby

If it shows /usr/bin/ruby (system Ruby), mise isn’t working. Try:

mise trust
mise install

“bundle install” fails with permission errors

Cause: You’re using system Ruby instead of mise Ruby.

Fix: Check which ruby. It should show a path containing .local/share/mise/. If not, ensure mise is activated in your shell config.


“Your Ruby version is X, but your Gemfile specified Y”

Cause: The project expects a different Ruby version than what you have.

Fix:

mise install

This installs the correct Ruby version defined in mise.toml.


Build Issues

Jekyll build fails with “Liquid syntax error”

Cause: There’s a typo in a template file.

Fix: The error message will tell you which file and line number. Check for:

  • Unclosed {% %} or {{ }} tags
  • Missing endif or endfor
  • Typos in variable names

Changes not showing up

Cause: Browser cache or Jekyll didn’t rebuild.

Fix:

  1. Hard refresh: Cmd + Shift + R (macOS) or Ctrl + Shift + R (Windows/Linux)
  2. Stop Jekyll (Ctrl + C) and restart: bundle exec jekyll serve

Images not loading

Cause: Wrong file path or filename.

Fix: Check that:

  • The image file exists in assets/images/
  • The filename in your YAML matches exactly (case-sensitive)
  • You’re using the correct path format: /assets/images/speakers/jane-doe.jpg

YAML Issues

Indentation errors

Cause: YAML requires spaces, not tabs. Wrong indentation breaks the file.

Fix: Configure your editor to use spaces (2 spaces per indent). Look for mixed tabs/spaces:

# Wrong (tabs or inconsistent)
event:
	name: "My Event"    # Tab character

# Correct (2 spaces)
event:
  name: "My Event"

Strings with special characters

Cause: Values containing colons, quotes, or special characters need to be quoted.

Fix: Wrap the value in quotes:

# Wrong
description: Welcome: An Introduction

# Correct
description: "Welcome: An Introduction"

YAML changes not appearing

Cause: Jekyll doesn’t always detect YAML file changes.

Fix: Stop the server (Ctrl + C) and restart:

bundle exec jekyll serve

Field Name Issues

People not displaying

Cause: Using wrong field names in speakers/en.yml.

Fix: Check these common mistakes:

WrongCorrect
image:photo:
keynote_speakers:keynote:
role:(not used)
bio:(not used)

Event details not showing

Cause: Using wrong field names in site.yml.

Fix: Check these common mistakes:

WrongCorrect
event.nameevent_name
venue:location:
contact.emailsocial.email

Facilitators not appearing on schedule

Cause: Using names instead of IDs in schedule.yml.

Fix: Use facilitator IDs that match entries in speakers/en.yml:

# Wrong
facilitators:
  - "Dr. Jane Doe"

# Correct
facilitators:
  - jane-doe

Language Issues

Language switcher not working

Cause: Wrong front matter format or missing language in strings.

Fix: Check the alternate field uses an object, not separate fields:

# Wrong
alternate_lang: en
alternate_url: /

# Correct
alternate:
  en: /
  hi: /hi/

Also ensure your language is listed in _data/strings/[lang].yml under language_switcher.


Deployment Issues

“gh-pages branch not found” when deploying

Cause: First-time deployment hasn’t created the branch yet.

Fix: Run the deploy command:

bundle exec rake deploy

This creates the gh-pages branch automatically.


Site shows 404 after deployment

Cause: GitHub Pages isn’t configured correctly.

Fix:

  1. Go to your repo on GitHub
  2. Settings → Pages
  3. Under “Source”, select “Deploy from a branch”
  4. Select gh-pages branch and / (root)
  5. Save and wait a few minutes

Site shows old content after deployment

Cause: GitHub Pages cache or CDN delay.

Fix: Wait 5-10 minutes. GitHub Pages can take time to update. You can also:

  1. Check the deployment status in GitHub → Actions tab
  2. Hard refresh your browser

Still stuck?

  1. Check existing GitHub Issues
  2. Open a new issue with:
    • What you were trying to do
    • The exact error message
    • Your operating system
    • Output of mise doctor and ruby --version

Glossary

Technical terms explained in plain English.

A

API

Application Programming Interface. A way for different software programs to talk to each other.

B

Branch

A separate version of your code. Like making a copy to experiment with, without affecting the original.

baseurl

A Jekyll setting that adds a path prefix to all URLs. Used when your site isn’t at the root of a domain (e.g., username.github.io/my-site/).

Bundle / Bundler

A tool that installs Ruby packages (gems) for your project. When you run bundle install, it reads the Gemfile and installs everything listed there.

C

Clone

Downloading a copy of a repository from GitHub to your computer.

CNAME

A DNS record type that points one domain to another. Used to set up custom domains for GitHub Pages.

Commit

A saved snapshot of your changes. Like a checkpoint in a video game.

COMPUTE

An ACM conference focused on computing education, run by iSIGCSE (ACM India Special Interest Group on CS Education). COMPUTE Regional Events bring this community together locally.

CRE

COMPUTE Regional Event. A local gathering of CS educators and researchers, using the ACM CRE template for their event website.

D

Deploy

Publishing your website so others can see it on the internet.

DNS

Domain Name System. Translates domain names (like example.com) to IP addresses. You configure DNS records to point your custom domain to GitHub Pages.

F

Fork

Creating your own copy of someone else’s repository on GitHub.

Feature toggle

A setting that enables or disables a feature. In the ACM CRE template, feature toggles in _config.yml control which sections (sponsors, venue, i18n) are visible.

Front matter

The section at the top of a markdown file between --- marks. It contains settings for that page.

---
layout: default
title: My Page
---

G

Gem

A Ruby package. Like an app for Ruby that adds functionality.

gh-pages

A branch name commonly used for GitHub Pages deployments. The deploy script builds your site and pushes it to this branch.

Git

A version control system that tracks changes to your files over time.

GitHub

A website that hosts Git repositories and provides tools for collaboration.

GitHub Pages

A free service from GitHub that hosts static websites directly from a repository.

H

HTML

HyperText Markup Language. The code that structures web pages.

I

i18n

Short for “internationalisation” (i + 18 letters + n). The process of designing software to support multiple languages. In the ACM CRE template, the i18n feature toggle enables multi-language support.

J

Jekyll

A static site generator. It takes your content (markdown files) and templates, and builds a complete website.

L

Liquid

A templating language used by Jekyll. The {{ }} and {% %} syntax you see in templates.

Local / Localhost

Your own computer. “Running locally” means running on your machine, not on the internet.

M

Markdown

A simple way to format text. **bold** becomes bold, # Heading becomes a heading.

mise

A tool that manages programming language versions. Ensures everyone uses the same Ruby version.

P

Pull Request (PR)

A proposal to merge your changes into another branch or repository.

Push

Uploading your commits from your computer to GitHub.

R

Repository (Repo)

A folder containing your project files and their complete history.

Ruby

A programming language. Jekyll is built with Ruby.

S

Sass / SCSS

A way to write CSS with extra features like variables. Jekyll compiles it to regular CSS.

Static Site

A website made of fixed files (HTML, CSS, images) with no database or server-side code. Fast and secure.

T

Template

A reusable starting point. The ACM CRE template gives you a website structure you can customise.

Terminal

A text-based interface for running commands on your computer. Also called command line, console, or shell.

Y

YAML

A format for configuration files. The .yml files in _data/ are YAML. Uses indentation and colons:

event:
  name: My Event
  date: 2026-03-21

What is a CRE?

A COMPUTE Regional Event (CRE) is a local gathering that brings together computer science educators, researchers, and practitioners to share knowledge and build community.

Purpose

CREs aim to:

  • Share teaching practices and innovations
  • Discuss challenges in CS education
  • Build regional networks of CS educators
  • Provide professional development opportunities
  • Connect educators with ACM and iSIGCSE resources

Who attends?

  • University faculty and lecturers
  • High school CS teachers
  • Graduate students interested in CS education
  • Industry professionals involved in education
  • Anyone passionate about CS education

Format

A typical CRE includes:

  • Keynote talks from experienced educators
  • Workshops on teaching techniques
  • Discussion sessions on current challenges
  • Networking opportunities

Events are usually one day, making them accessible for busy educators.

Why host one?

Hosting a CRE at your institution:

  • Raises your department’s profile
  • Brings educators to your campus
  • Creates professional development for your faculty
  • Connects you with the broader ACM community
  • Gives students exposure to CS education as a career

Getting started

  1. Find a faculty champion
  2. Secure a date and venue
  3. Set up your website (that’s what this template is for!)
  4. Reach out to potential speakers
  5. Promote to regional educators

See Planning Your Event for detailed guidance.

Planning Your Event

A guide to organising a successful COMPUTE Regional Event.

Timeline

3-4 months before

  • Secure venue and date
  • Identify potential keynote speakers
  • Set up your event website
  • Create registration form
  • Draft budget

2-3 months before

  • Confirm speakers
  • Open registration
  • Begin promotion
  • Arrange catering
  • Plan AV requirements

1 month before

  • Finalise schedule
  • Send reminders to registrants
  • Prepare materials (badges, programmes)
  • Confirm all logistics

1 week before

  • Final headcount to catering
  • Test all AV equipment
  • Brief volunteers
  • Prepare feedback forms

Day of event

  • Arrive early for setup
  • Welcome attendees
  • Take photos
  • Collect feedback

Budget considerations

Typical costs include:

  • Venue (may be free if at your institution)
  • Catering (coffee, lunch)
  • Speaker travel (if needed)
  • Printing (badges, programmes)
  • AV equipment rental

Funding sources:

  • Department budget
  • ACM/iSIGCSE support
  • Sponsorships
  • Registration fees (keep low to maximise attendance)

Promotion

Reach educators through:

  • Email to regional CS departments
  • Professional mailing lists
  • Social media
  • ACM/iSIGCSE channels
  • Word of mouth

Accessibility

Ensure your event is accessible:

  • Wheelchair-accessible venue
  • Dietary options for catering
  • Live captioning or sign language (if budget allows)
  • Quiet space for breaks
  • Clear signage

After the event

  • Send thank-you emails
  • Share photos and highlights
  • Publish feedback summary
  • Document lessons learned for next year
  • Maintain connections with attendees

Need help?

Reach out to other CRE organisers or the ACM COMPUTE community for advice and support.