← Back to Volunteering
GenZipher Hackathon

GenZipher Hackathon

CSSL GenZ Chapter of UCSC

Behind the Tech: GenZipher Hackathon

I was part of the Web and tech support team of the GenZipher 1.0 organized by the CSSL GenZ Chapter of UCSC. We built the full technical infrastructure, powering everything from registrations to the final CTF round.

Here's a quick look at what went on behind the scenes:

🔹 genzipher.lk

Built with Next.js for performance and scalability. Used Google Apps Script to automate email confirmations.

🔹 Dolos and OSS Contributions

We performed plagiarism detection using Dolos across all submissions in the first round.

A custom script was used to bulk-download submissions. The most popular open-source downloader lacked filtering for specific challenges, so we modified the Go script ourselves and opened a PR, contributing improvements back to the open-source community.

🔹 Custom CTFd Deployment

The final round ran on a heavily customized CTFd instance:

  • Redesigned the UI to match the hackathon's theme and branding
  • Added completely new custom pages and flows
  • A custom plugin that automatically emails participants when they reach certain solve milestones
  • Tuned scoring and challenge behavior to better fit our competition format

🔹 Challenge Infrastructure

Used KCTF to host PWN and Web challenges with proper isolation and auto-reset capability. Since we were running everything on a single VPS, we deployed KIND (Kubernetes IN Docker) — which allowed us to run a lightweight Kubernetes cluster inside Docker containers. This gave us the benefits of Kubernetes orchestration without needing multiple physical nodes.

And Nginx as the reverse proxy.

🔹 DevOps

Containerized services, separate Docker deployments for CTFd and KCTF, and CI/CD pipelines to ensure smooth updates and reliability during the event.

Next.jsGoogle Apps ScriptCTFdKCTFKubernetes (KIND)DockerCI/CD

Building the infrastructure was just as exciting as the competition itself — balancing scalability, security, and reliability while keeping everything on a single VPS was a fun engineering challenge.

Huge props to our Web Lead Naveen Harinda, and my fellow members Sashik Thivanka, Induwara Uthsara, and everyone from the GenZipher OC for the teamwork, late nights, and constant problem-solving that made the event a success. Proud of what the team pulled off