Warning
This repo is completely vibe-coded, and we have no idea how much slop our agent wrote in it. The main takeaway for you should be: it works 👍 and its fun 🎉
Devfolio's maintenance page — a canvas slingshot game where you shoot the team while the site is down.
Built with React + TypeScript + Vite.
A fully playable browser game served as the maintenance page for devfolio.co. Players grab a slingshot, aim, and fire at floating team member profiles. Jhumri is the special character — she dodges every shot and meows at you.
- Slingshot physics with drag, pull limit, and gravity
- Blob wander system with soft boundary steering and separation
- Mobile wave system: 4 profiles at a time, more enter as you eliminate them
- Jhumri dodge AI: ball path simulation, 4×3 grid candidate selection, fast smooth lerp
- Synthesized 8-bit hit sound via Web Audio API
- Meow SFX on Jhumri dodge (real audio, random pick, 3s cooldown, always plays on first dodge)
- Maintenance banner with live countdown; switches to "Operating Normally" after end time
- Vercel Analytics: tracks
game_startedandshot(with player name) events - Responsive — scales down for mobile with adjusted UI, slingshot position, and grid layout
- Cheat codes:
BANG(clear all except Jhumri),RESET(restart game)
- React 19 + TypeScript
- Vite
- Canvas 2D API (no game engine)
- Vercel Analytics
pnpm install
pnpm devpublic/
people/ # Team member profile images
sfx/ # Sound effects (meow-1.mp3, meow-2.mp3)
favicons/ # PNG favicons at various sizes
src/
components/
GameCanvas.tsx # Main game loop and canvas rendering
MaintenanceBanner.tsx # Top banner with status and countdown
constants/game.ts # Tunable game constants
data/team.ts # Team member definitions
Deployed on Vercel. Push to main triggers a production deploy.