Anyone who's built an LLM-powered app knows the problem. You fire off a request, and then you wait. And wait. Developer ftaip decided to do something about it with react-waiting-game, a React component library that drops five mini-arcade games into your loading states.
The games, including Pixel Runner, Jellyfish Drift, and Gravity Flip, all run on a single HTML5 Canvas element using one-button controls that work with keyboard, touch, or pointer input. Zero runtime dependencies, SSR-safe, and it won't block your main thread while the LLM chugs along in the background.
Smart solution to a real problem.
The library uses a unified game engine that decouples from React's rendering cycle, running at 60fps via requestAnimationFrame on a single canvas. Each game shares the same framework for combos, power-ups, achievements, and high scores persisted to localStorage. The 1-bit pixel art aesthetic isn't just a style choice. It minimizes texture memory and draw calls, keeping things lightweight while your app does real work.
Integration is straightforward. Install the package, drop in the WaitingArcade component with autoStart enabled, and your users have something to do while waiting for that chat response.
The Hacker News thread revealed something more interesting. When commenters noted the lack of a gameplay demo, a user had a coding agent record, edit, and upload a gameplay video to the repository. An agent handled the demo video because no human wanted to. That's exactly the kind of glue work coding agents are good for.
The library is available now on npm under react-waiting-game.