I told Claude to build me a browser game. It actually worked.
Remember when browser games meant Flash? And then Flash died and we all pretended mobile gaming filled the void?
It didn’t. Mobile gaming is 90% ads and 10% gameplay designed to extract money from people with gambling addictions.
But modern browsers? They’re actually capable of running real games. HTML5 Canvas, localStorage, responsive design—all the tools are there. No plugins required.
So I asked Claude: “Build me Hangman. Vanilla JS. Make it work.”
Then I said: “Make it cooler.”
Then I said: “Go wild.”
Here’s what happened.
The Game
Play it below. It’s Hangman. But not the Hangman you remember.
Features: 🎆 Particle effects • 🎯 Difficulty levels • 💡 Hints • 🌙 Dark mode • 🔊 Sound effects • 🏆 Achievements • 📤 Share your wins • 🤬 Potty mouth mode
What’s Actually Happening Here
This isn’t just Hangman anymore. This is a demonstration of what browsers can do when you actually use their capabilities.
Particle System: Canvas-based confetti explosion on wins, falling letters on losses. No library. Just math and requestAnimationFrame. 1
Web Audio API: Sound effects generated in real-time using oscillators. No audio files. Pure synthesized tones. Toggle-able because not everyone wants beeps. 2
Difficulty Levels: Four difficulty tiers with categorized word lists. Easy mode for beginners, Expert mode for showing off.
Hint System: Reveals a random letter. Limited to 3 per game. Uses localStorage to track total hints used across sessions.
Dark Mode: CSS transitions and gradient changes. No flash, no flicker. Just smooth theme switching.
Achievements: Dynamic unlock system. Perfect games, win streaks, all tracked and celebrated.
Share Functionality: Uses Web Share API where available, falls back to clipboard. Shows your game result in emoji format because that’s how people communicate now.
Smooth Animations: Letter reveals with rotation and scale. Key presses with pop and shake effects. Everything has a transition because janky UX is unacceptable.
LocalStorage Persistence: Wins, losses, streaks, best streak, perfect games, hint usage—all saved. No account needed.
Potty Mouth Mode: Because sometimes KUBERNETES isn’t satisfying enough. Four difficulty tiers of tech-related profanity with proper technical definitions. You’ll know it when you see it.
The Potty Mouth Origin Story
Me: “this is really neat. add some potty mouth words.”
Claude: proceeds to add profanity to the blog post text
Me: “I meant to the game.”
Claude: “Oh SHIT, you want to add profanity to the word list in the game itself! That’s way better.”
And that’s how we got a dedicated profanity category with tech-themed definitions. Play the game to find out which colorful terms made the cut.
The Technical Bits
- Zero dependencies: No React, Vue, jQuery, or any framework
- No build step: Copy the source, it just works
- Web Audio API: Synthesized sound effects in 15 lines of code
- Canvas particle physics: Gravity, rotation, life decay—all calculated per frame
- Responsive: Works on phone, tablet, desktop
- Accessible: Keyboard navigation, screen reader friendly
Why This Matters
You don’t need a package.json with 200 dependencies to build something fun and functional.
You don’t need a framework for interactivity.
You don’t need a build pipeline for basic JavaScript.
The browser is genuinely powerful. HTML5 Canvas, Web Audio, LocalStorage, Web Share API—these aren’t experimental features anymore. They’re standard. They work. Use them.
What’s Next
Maybe Chess next. Minimax algorithms, piece animation, move validation—all the algorithmic challenges.
Or Tetris. Or Snake. Or something completely new.
The point remains: modern browsers make this easy. Claude makes it even easier. And you don’t need to npm install anything to have fun.
Built with Claude Sonnet 4.5 - who has no idea what fun is but can definitely help you code it
The AntFarm
at 00:00
