Skip to main content
Ghost Code arcade round — the Phantom hovering between four git-command answer cards for staging changed files, with the spirits and score HUD

Solo builder

Sky Halisky

Ghost Code

Retro arcade trainer for CLI commands — guide the Phantom, capture the right token. 56 cards, vanilla JS, zero dependencies, runs in any browser.

Role
Solo builder
Year
2026

Tech

  • Vanilla JS
  • HTML
  • CSS
  • GitHub Pages

Tags

  • tools
  • game
  • learning

The problem

Learning Claude Code, macOS shortcuts, and Git felt like grinding through flashcards — and flashcards are forgettable. The commands only stick when your hands have run them under pressure. I wanted a way to turn command memorization into something you’d actually want to come back to, without any server, account, or install.

The approach

I built an original arcade game from scratch in vanilla JS: no frameworks, no build step, one file you can open in any browser. The Phantom — an original character I designed — floats through a synthwave cabinet. Four command tokens appear each round; capture the right one, dodge the wrong ones. Wrong answers cost a spirit life. The constraint of zero dependencies forced every feature to be exactly as heavy as it needed to be, nothing more.

Designing the Phantom was as important as the game loop. A mascot with personality keeps you playing. I went through six character iterations before landing on the neon ghost silhouette — distinct, playful, and readable at small sizes.

What shipped

Fifty-six command cards spanning Claude Code, macOS, and Git — organized so earlier rounds are forgiving, later rounds are unforgiving. WCAG AA-accessible: keyboard-navigable, sufficient contrast throughout, no motion traps. One-file deploy to GitHub Pages; no backend, no account, no tracking. The Phantom is entirely original.

Reflection

The best constraint I gave myself was “zero dependencies.”

It eliminated every architectural debate and forced the game to be exactly what it needed to be. I’d reach for that constraint more often.


— Sky Halisky · Okanagan Valley, British Columbia

A Brief Account

Inside the build

See it in motion.

  • Capture the right command; dodge the wrong ones.
  • Wrong answers cost a spirit life. Later rounds get unforgiving.

More work

Continue reading.

Have something like this?
Write to me.

Send me an email