I built a web-based car racing game without writing a single line of code.
Just prompts, patience, and a lot of back and forth with AI. In this post I’m going to walk you through the full tech stack behind CHOP FIRST, how it went from one car and one track to four cars and two circuits including one that runs through real streets in Accra, and what made all of it possible without touching a single editor.
What is CHOP FIRST
CHOP FIRST takes its name from Ghanaian pidgin. To chop first means to emerge first, to get there ahead of everyone else. That’s the whole game in two words.
CHOP FIRST is a free browser racing game. You pick a track, set a time, and send the link to someone with 24 hours to beat it. That’s the core loop. You’re not just posting a time, you’re challenging someone specific, and they race your ghost replay. If they beat you, they chopped you.

The game currently has two circuits to choose from. The Akina Ridge Sprint is the mountain touge, three laps, fast and technical. The Accra City Run is the street circuit, two laps through a route that traces real roads in Accra, a longer circuit that takes more out of you to finish clean. Both tracks share the same challenge and leaderboard system, so a run on either one can be shared, raced, and chopped.
It launched in June with one car and one track. It now has four cars, two full circuits, Day/Dusk/Night lighting modes, a live gap timer, medal tiers, leaderboards, and a challenge inbox. Every single one of those features came from natural language conversations with AI.
The framework holding it together
The game runs on Next.js with React, and Three.js rendered through React Three Fiber. If those names mean nothing to you, here’s the short version: Next.js is the container that makes it a proper web app you can open in a browser without downloading anything. React Three Fiber is what lets me build 3D graphics inside that app using a clean, component-based approach. Drei is a helper library on top of that handles things like the sky and environment lighting without having to build them from scratch.
The whole thing is deployed on Vercel. Every time a new version is ready it goes live with one push. No server management, no infrastructure headaches.
The physics
The vehicle physics live in a single file called vehicle.js. It’s a hand-rolled kinematic arcade controller, which is a fancy way of saying Claude Code wrote a custom physics model from scratch rather than pulling from an off-the-shelf game engine. It handles acceleration, steering, drifting, rail collision, boost, and reverse. All the feel of a real arcade racing game, built entirely through prompts.
Here is the decision I’m most proud of on this build: when I added four new cars, I did not touch the physics engine. Not once. Each car runs on the same vehicle.js controller, just with different parameters and a new 3D model layered on top as a visual skin. No new physics code, no per-mesh collision. The driving feel carries across all four cars because the engine underneath them is the same one that has been running since launch. If it ain’t broke, don’t fix it. That is a real engineering call, and it came from understanding what was already working well enough to leave it alone.
The cars
The four cars in CHOP FIRST are real Creative Commons 3D models sourced from Sketchfab. The Street Coupe is by Juff22, the Ghana Taxi by Han66st, the Trotro by Yoru_Murcielago, and the Hover Speeder by MRowa. All four are credited in the repo.

Getting them into the game involved a Blender MCP server. I described what I needed done to each model, the AI executed it inside Blender directly through the MCP bridge, and a cleaned up GLB file came out the other side ready to load into the game. No manual Blender work on my end.

The Ghana Taxi and the Trotro felt important to include specifically. CHOP FIRST has a Ghanaian identity and having cars people actually recognise from Ghanaian streets makes the game feel grounded in something real.
The tracks
The mountain sprint, Akina Ridge Sprint, was the original track. It’s built from a Catmull-Rom spline with named sections: start straight, easy right, medium left, summit hairpin, S-chicane, recovery straight, final sweeper. Every corner was designed deliberately.
The Accra City Run is the newer circuit and the one I’m most excited about. It is traced from real OpenStreetMap road geometry through Osu, past Danquah Circle, up to 37 Military Hospital, and through Cantonments. Real landmark coordinates anchor the scenery placement along the route. The result is a street circuit with a genuine relationship to a real place, not a made-up city layout.
The art
No designers were hired for this. The landing page art and key visuals came from Higgsfield. The garage backdrop and the Accra circuit cover image came from Nano Banana, specifically the nano_banana_pro model. Both tools take a text prompt and return a finished image. Describe what you want, review it, iterate if needed. Same process as the code.
The sound
Every sound in CHOP FIRST is synthesized with the WebAudio API. There are no audio files in the project at all. The engine noise, the drift screech, the boost whoosh, the coin chime, the impact thud: all generated in real time by code. This keeps the game lightweight and fast loading even on a slower connection.
Persistence and data
Every challenge, ghost trace, leaderboard time, and road message lives in Upstash Redis over its REST API, with a local JSON fallback for development. Player feedback is emailed straight to my inbox through Resend.
When you race someone’s challenge link you are racing a translucent replay of their exact inputs, corner by corner, stored and retrieved from that same database.
How it all came together
I initially started building this with Codex GPT 5.5 but switched to Anthropic’s mythos Fable 5 when it dropped. After that model got taken away I continued building with Opus 4.8.

Claude Code handled all the code, but to work with 3D models and generate art I needed it to reach outside its own environment. That’s what the MCP servers did. The Blender MCP server let Claude Code operate Blender directly, cleaning up the Sketchfab models without me touching the software myself. The image generation tools connected the same workflow to Higgsfield and Nano Banana for the art. One consistent prompt-based process, end to end.
The part I keep coming back to is that this is the most complex thing I have built since I started August Wheel this year, and the milestones keep moving. I started with one car and one track. I now have four cars and two circuits. I am already thinking about what comes after this.
CHOP FIRST is free and runs in the browser at chop-first.vercel.app. No download, no account. Pick a car, pick a track, set a time, and send it to someone who thinks they can beat you.
If you want to follow what comes next on this build, the newsletter at newsletter.augustwheel.com is the best place to stay in the loop.
FAQ
What is vibe coding?
Vibe coding is building software by describing what you want in natural language and letting AI write the code. The skill is in knowing what to ask for, reviewing what comes back, and iterating until it does exactly what you want.
What is the tech stack behind CHOP FIRST?
CHOP FIRST runs on Next.js and React, with Three.js through React Three Fiber and drei. The vehicle physics are a hand-rolled kinematic arcade controller. The cars are Creative Commons GLB models from Sketchfab, cleaned up through a Blender MCP server. The two tracks use Catmull-Rom spline geometry, with the Accra City Run traced from real OpenStreetMap road data. Art was generated with Higgsfield and Nano Banana. Everything was built with Claude Code.
Is CHOP FIRST free to play?
Yes. It runs entirely in the browser at chop-first.vercel.app. No download, no account, no cost.
How does the 24-hour challenge system work?
After a race you can share a link with anyone. They have 24 hours to beat your time, racing against a ghost replay of your actual run. If they beat it, they chopped you. Every new run from either side resets the 24-hour clock.






Leave a Reply