- Air Jam makes every smartphone a phone as controller for local multiplayer games — no app installs or Bluetooth required.
- The open-source framework uses a phone as controller via QR code scanning, handling all WebSocket networking automatically.
- Air Jam is designed explicitly for AI-assisted development, shipping agent-friendly docs so LLMs can focus on game logic.
- Unlike AirConsole’s closed ecosystem, Air Jam lets developers self-host and extend everything freely.
- Air Jam makes every smartphone a phone as controller for local multiplayer games — no app installs or Bluetooth required.
- The open-source framework uses a phone as controller via QR code scanning, handling all WebSocket networking automatically.
- Air Jam is designed explicitly for AI-assisted development, shipping agent-friendly docs so LLMs can focus on game logic.
- Unlike AirConsole’s closed ecosystem, Air Jam lets developers self-host and extend everything freely.
Your Pocket Already Has a Phone as Controller
Look around any living room, office, or bar. Every person in that room is holding a phone as controller — they just don’t know it yet. Each device has a gyroscope, a touchscreen, haptic feedback, and a browser. That’s not a communication device. That’s a gamepad nobody had to buy. Air Jam, a new open-source framework, is built entirely around that observation, and the timing couldn’t be more interesting.
The premise is disarmingly simple: a computer or TV runs the game, players join by scanning a QR code on their phones, and play begins in seconds. No app store visits. No Bluetooth gymnastics. No account creation flow that kills the mood at a party. You scan, you’re in. The project was built by the developer behind the Zerodays account on Dev.to, who wanted to strip every possible barrier between having a game idea and actually playing it with a room full of people.
AirConsole Proved the Concept — Air Jam Opens It Up
This idea isn’t arriving from nowhere. AirConsole has been running with the phone as controller concept for years, and it works beautifully for party games. But AirConsole is a closed commercial platform. You build inside their ecosystem, publish on their terms, and the infrastructure belongs to them. That’s a reasonable business model, but it’s not the same as owning your stack.
Air Jam is explicitly the open-source alternative. Self-hosted, fully extensible, deployable anywhere. And unlike AirConsole, it’s designed for a very specific moment in software development — the one where most developers are working alongside an LLM in some capacity, whether that’s GitHub Copilot, Claude Code, or Cursor. That context shapes almost every architectural decision in the framework.
Two Problems, One Clean Split
Building a multiplayer game where every player’s phone as controller sends input to a central host is, underneath the fun, a genuinely hard distributed systems problem. The creator breaks it down clearly: there are two distinct challenges, and they require very different kinds of thinking.
The first is infrastructure — WebSocket connections, room management, input synchronization, state replication across potentially a dozen devices, graceful handling of disconnections and reconnections, and input latching so a button press doesn’t vanish in the gap between a network tick and a game frame. This is systems-level code with subtle failure modes. Get it wrong and your game randomly drops inputs or desyncs mid-round.
The second problem is the actual game: the rules, the visual design, the controller layout, the moment that makes someone yell at their phone in delight. This is creative, iterative, and fast-moving.
Here’s where Air Jam’s design philosophy gets smart. Problem one is exactly what you don’t want an LLM improvising from scratch every session — it requires deep, consistent understanding of edge cases. Problem two is precisely where AI assistants shine: generating creative logic, experimenting with mechanics, building out UI quickly. Air Jam solves problem one completely so that you, and any AI you’re working with, only ever have to think about problem two.
The Developer Experience: Zod Schemas and Zustand Stores
The technical surface area of Air Jam is deliberately small. A game is a React application with two views: one for the host screen and one for the phone as controller. You define what data the controller sends using a Zod schema — that schema becomes the enforced contract between the phone and the game engine. For Pong, the starter template, the entire input schema is a single number between -1 and 1 representing paddle direction. That’s it.
The SDK setup wraps into a single airjam object created via createAirJamApp(), which you then use to wrap your host and controller routes. On the host side, a useAirJamHost() hook gives you connected players and runtime state. On the controller side, useInputWriter() and useControllerTick() are the entire input publishing API. There’s no raw WebSocket code anywhere in sight.
For shared state — scores, team assignments, game phases — there’s createAirJamStore, which is built on top of Zustand. The host is always the source of truth. When a controller calls a store action, it’s transparently proxied as an RPC to the host, executed there, and the result broadcasts back to every connected device. Both the host and controller import the same hook; the networking is invisible. Authorization logic — who can do what — lives in one place, in the host-side action handlers.
This architecture is what makes AI-assisted development practical here. An LLM helping you build a phone as controller game doesn’t need to understand WebSocket handshakes or message serialization formats. It writes a Zustand-shaped store and a Zod schema, and the framework handles the rest. The cognitive overhead that typically makes multiplayer networking intimidating simply isn’t there.
Scaffolding a Game in Minutes
Getting started is one command: npx create-airjam my-game. You pick a template — Pong for the simplest possible starting point, Air Capture for something more ambitious — run pnpm install, and you have a working multiplayer game running locally. The project even ships documentation specifically written for AI agents in a docs/for-agents/ directory, so an LLM working inside Cursor or Claude Code doesn’t have to reverse-engineer the SDK from first principles.
That last detail is worth pausing on. Shipping agent-friendly documentation as a first-class artifact of a framework is still relatively rare, but it’s becoming a real differentiator. Frameworks that structure their docs for human-plus-AI workflows are going to get adopted faster, full stop. Air Jam seems to understand that.
Why This Matters Beyond the Party Game Niche
Party games are the obvious use case, and they’re a genuinely good one — local multiplayer experiences have always been hampered by the controller supply problem. Not everyone owns four gamepads. Everyone owns a phone. But the phone as controller model has applications well beyond Pong clones and trivia nights.
Think about interactive presentations, classroom tools, live audience participation at events, or collaborative data visualizations where every participant needs a phone as controller and an input device. The barrier Air Jam removes — the need for dedicated hardware or a downloaded app — is the same barrier that has kept a lot of those ideas as thought experiments rather than real products.
The AI angle adds another layer. We’re in a period where the cost of writing boilerplate infrastructure code is dropping fast, but the cost of getting it right — especially for networked, real-time systems — hasn’t dropped at all. Frameworks that abstract the hard parts and expose a clean, LLM-legible surface are going to accelerate what individual developers can ship. Air Jam is a small project, but it’s thinking about development in exactly the right way for 2025: handle the hard infrastructure once, document it for both humans and machines, and let the creative work move at the speed of an AI-assisted conversation.
If AirConsole built the category, Air Jam is betting it can own the open layer beneath it — and with the momentum behind AI-assisted coding tools, that open layer might turn out to be where all the interesting games get built.
Source: https://dev.to/zerodays/what-if-every-phone-in-the-room-was-a-game-controller-in-the-age-of-ai-375g

