Kali Linux 10-Year

A two-week build for Kali Linux's 10th birthday: a countdown, custom puzzles, live leaderboards, and a 3D cake, serving 1M+ requests from a $5 server.

2023 · Design · Dev · SvelteKit · ~2 min

  • Svelte
  • PocketBase
  • Three.js
  • Discord
Kali Linux dragon logo over ASCII terminal art from the 10 year event

Kali Linux turned ten in 2023. OffSec and the Kali team celebrated with a public puzzle event at 10year.kali.org (announcement (opens in new tab)): a countdown, original puzzles, player profiles, and live leaderboards.

I built and shipped the web app. It had to look like the event, play like a game, and survive launch day.

Role
Built and shipped the web app
Timeline
Two weeks to a hard launch date
Stack
SvelteKit, PocketBase, Three.js
Result
1M+ requests on a $5 server

01

The countdown

Before launch, the homepage was a clock. To play, you signed in with Discord, where the Kali community already hung out. A prizes and rules page covered the rest.

Kali 10-year launch screen with a launching-soon countdown and Discord sign-in
The launch screen.
  1. Counting down to launch
  2. Sign in with Discord

02

Every puzzle, its own look

Community contributors designed the puzzles. My job was making each one feel native to the site, so each got its own presentation: terminal-era BBS menus, glitched images, TV static, channel-split graphics.

Underneath, one shared shell handled progress, points, notifications, and access. Some puzzles needed more than a skin:

Puzzle hub with ten cards named like media files, each with a contributor credit and a Begin button
  1. Every puzzle posed as a media file
  2. Contributors credited on each card
  3. Blurred terminal behind it all
Kali String, a puzzle I built a custom component for.

RGB Kali dragon puzzle view with separated color channels and binary overlay

A channel-split dragon with a binary overlay.

03

The cake

A birthday needs a cake. This one was 3D, built with Three.js in Svelte from a model small enough to keep on a budget host.

The cake, live in the app.

04

Live leaderboards

Scores updated live for every player, no refresh needed. Ties went to whoever solved first.

Leaderboard in the default dark theme with puzzle, player, and time-remaining stats above the top ranksThe same leaderboard in the yellow theme
Players could re-theme the whole app from Settings.

Grid of every puzzle with how many players had solved it, from 105 players down to one

Mid-event: 105 players had solved 7V-Static.wmv. One had cracked ARTIC1E.m4v.

05

Launch day

Two weeks to build, and it only had to last through the anniversary. So I built for launch day, not for years.

It never fell over. The event has ended and 10year.kali.org (opens in new tab) now redirects to a GitLab archive, so these screenshots are what’s left.

Also at OffSec, I led the offsec.com rebrand, from the Figma design system to the Astro front end.

  1. CloudflareFirewall rules at the edge
  2. NGINXRate limiting in front of the app
  3. SvelteKitDiscord sign-in, puzzles, Three.js cake, live leaderboards over SSE
  4. PocketBaseAccounts, puzzle state, and scores
One Linode server, one Docker Compose file.
1M+
requests served during the event
1,161
players online at once
$5
server behind all of it

Traffic chart, flat until a sharp spike to 40,356 requests at 11 AM on March 22, 2023

40,356 requests at the 11 AM spike, March 22, 2023.

Status: available for hire

Hiring a full-stack engineer?

Twenty years of shipping for the web, from first sketch to last deploy.