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.
- Svelte
- PocketBase
- Three.js
- Discord

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.

- Counting down to launch
- 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:

- Every puzzle posed as a media file
- Contributors credited on each card
- Blurred terminal behind it all

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.
04
Live leaderboards
Scores updated live for every player, no refresh needed. Ties went to whoever solved first.



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.
- CloudflareFirewall rules at the edge
- NGINXRate limiting in front of the app
- SvelteKitDiscord sign-in, puzzles, Three.js cake, live leaderboards over SSE
- PocketBaseAccounts, puzzle state, and scores
- 1M+
- requests served during the event
- 1,161
- players online at once
- $5
- server behind all of it