Overview and setup
The app you will build
In this workshop we'll build the classic Snake game as a full-stack web app.
For the front-end part, we'll use React and implement
- the actual game with two modes: pass-through and walls
- a spectate view for watching other players
- login and signup
On the backend we'll use FastAPI:
- it communicates with the frontend
- it stores users, scores, and active games in a database
In this workshop, we'll be the drivers: we'll use the coding assistant to do the work.
That's why you don't need to be an expert in any of the technologies we'll use. In fact, you'll be able to have a working version even if you see React, Python, GitHub Actions or AWS CloudFormation for the first time.
The only thing you'll need is to know how to read the result, and when to push back.
Prerequisites
You can do the whole workshop on a laptop.
Set up these accounts:
- GitHub account. Lovable pushes the frontend here, and the CI/CD pipeline runs on GitHub Actions.
- A Lovable account, whose free tier is enough to generate the frontend, though any alternative or a coding assistant works too.
- A coding assistant, in my case Codex, which comes with a ChatGPT account. Claude Code, GitHub Copilot, Cursor, Gemini CLI and Google Antigravity work the same way. The prompts are plain English.
- AWS account for the optional deployment part. You can stop after Docker Compose and still have a working local app, or deploy to any other cloud.
Install or confirm these local tools:
- Node.js for the React frontend. The Codespace ships Node 24.
- Python for the backend. GitHub Codespaces ships Python 3.12, so that's the version we use.
- uv for Python packaging.
- Docker with Docker Compose.
For the deployment part you also need the AWS CLI.
For today, here's what we want to build:
- The frontend with Lovable, then run and test it locally.
- An OpenAPI spec extracted from what the frontend calls.
- The FastAPI backend generated from that spec, on a mock database, with tests.
- The frontend connected to the backend, running side by side.
- A real database: SQLite locally, then Postgres once we containerize.
- Docker Compose, deployment to AWS with infrastructure as code, and GitHub Actions.
Let's start with the front-end part.