Website for Hackerspace Gent (0x20), a community space for hackers, makers, and tinkerers in Ghent, Belgium.

Hackerspace Gent Website
Markdown-Based Event System

We needed a way to organize events at the hackerspace. Using Google Calendar or Outlook wasn't an option - half the members are on a crusade against big tech.

The criteria for the new system:

  • Every member should be able to add, edit, and delete events
  • Events should be customizable with images and rich content
  • Still offer a Google Calendar for those who want them

The solution: since every member has a GitHub account anyway, events are just markdown files. Create a .md file in the /events/ folder, submit a PR, and the website picks it up automatically.

CI/CD (GitHub Actions)

Two GitHub Actions power the site.

Deployment

On push to main, SSH into the VM, pull the latest code, and rebuild the Docker container. Changes are live within seconds.

Google Calendar sync

When event markdown files change, the action parses them, and updates the Google Calendar events using the googleapis Node.js library.

GitHub Actions
Node.js + Express

The backend is built with Node.js and Express, using Pug as the templating engine. Simple, fast, and easy for other hackerspace members to contribute to.

Express web framework
Pug templating
Markdown parsing for events
Node.jsExpress
Azure Deployment

Hosted on Azure App Service. The hackerspace has Azure credits through various sponsorships, so hosting is essentially free.

Azure App Service for hosting
Custom domain hackerspace.gent
SSL via Azure
DockerAzure