Beat Jev
September 18, 2026 · View on GitHub
You and Jev take five kicks each. Render Workflows runs the whole match and its subtasks; TypeSafe Jev chooses shots and saves; Render Postgres keeps the score.
Deploy
The Blueprint creates a paid web service, a usage-billed workflow with all eleven tasks, and a paid Postgres database. Enter your Render API key and TypeSafe API key when prompted. Database connections and the workflow slug are wired automatically. No OpenRouter key is needed.
Play
- Enter a nickname and press Play.
- Tap to aim, or swipe for power and curl. Release to kick. Arrow keys and Space also work.
- Roles swap automatically. A short countdown announces Jev’s kick. Use Left/Right to move and hold Space to jump, or use the touch controls.
- Five kicks each. Most goals wins. Press Try again for a new match.
One parent task owns ten alternating turns. Player and keeper subtasks run in parallel; saving the result waits for both. Jev commits his shot before seeing your current movement. The Render Workflows panel shows the real task tree; expand Jev’s decision for its input and response.
Local development
From the repository root, with Node 24, the Render CLI, and a Postgres database:
npm ci
# The TypeScript backend needs no Python runtime.
cp .env.example .env
# Set DATABASE_URL and TYPESAFE_API_KEY in .env.
npm run dev:typescript
Open http://127.0.0.1:5183. Local mode uses Render’s local workflow server. The database schema is created on API startup.