ai
I Built a Jason Statham Movie Generator in Less Time Than a Jason Statham Movie
"Last night that meant Mutiny, which I'm comfortable calling the worst Jason Statham film so far."
With no post-season Jays baseball to fill my evenings this year, I've been leaning on my usual fallback after a long day: a mindless action movie with the volume up and my brain switched off. Last night that meant Mutiny, which I'm comfortable calling the worst Jason Statham film so far. Too many guns, not enough fighting, and a plot twist you could see coming from the opening credits. IMDb sums it up as "after his billionaire industrialist boss is murdered in front of him, Cole Reed is set up to take the fall for the crime, leaving him on the run as he works to uncover an international conspiracy." Somewhere around the second time he just shot someone instead of actually fighting, I started thinking back over Statham's last few films, and the pattern was not flattering to Hollywood's screenwriters.
Just before Mutiny, Statham gave us Shelter, in which "a reclusive former government assassin finds his forced isolation shattered when a stranded supply girl triggers a lethal tracking system, forcing him to defend her against his old handler's relentless execution squads." His previous outing was A Working Man, where "Levon Cade left his profession behind to work construction and be a good dad to his daughter. But when a local girl vanishes, he's asked to return to the skills that made him a mythic figure in the shadowy world of counter-terrorism." Go back one more and you land on The Beekeeper, which IMDb describes with admirable economy as "a former operative of a powerful organization embarks on a brutal campaign for vengeance." Retired professional, quiet new life, someone vulnerable in danger, old skills dusted off, a lot of people regret it. See a theme here?
I did. So I built stathammoviegenerator.com, which lets anyone create their own film following the Statham formula.
From idea to production in 51 minutes
At 8:13pm I saved a markdown file describing the joke: a website that generates Jason Statham-style action movies from a menu of tropes. Pick a mysterious past, a black SUV, a sweet old lady who turns out to be important, and an improvised weapon (a toaster, ideally). At 9:04pm the site was live, generating fully synopsized films complete with cast lists, critic quotes and MPA-style ratings "for violence, language and improper use of horticultural equipment." The Statham movie I had on in the background was still going.
How does a side project go from a text file to a public website in under an hour? I handed my project plan to Claude Code, answered a couple of rounds of questions (which model to use, what to cut from v1, how to handle custom input, how strict the rate limits should be), and then mostly watched. It built the site in five phases and committed after each one, which is more discipline than I can claim for most of my own weekend projects.
| Time | Milestone |
|---|---|
| 8:13pm | Plan saved |
| 8:18pm | Go server scaffolded |
| 8:25pm | Movie builder UI, Randomize, and Chaos Mode |
| 8:31pm | First AI-generated movie ("Slack Tide") |
| 8:41pm | Results page with poster and rating card |
| 8:53pm | Saved movies with share links |
| 8:58pm | Rate limits and security hardening |
| 9:02pm | Deployed |
| 9:04pm | Live on stathammoviegenerator.com |
The stack
For those not familiar with how I like to build things, I have a strong allergy to build pipelines for projects this size. The whole thing is a single Go binary that serves both the JSON API and the frontend, with the static files baked in using embed.FS. There's no build step and no node_modules folder quietly eating my disk. The frontend is plain HTML, CSS and JavaScript, roughly 1,700 lines in total.
The AI calls run through CollabIntel, my home-spun AI aggregator, so switching model providers is a config change. It's currently pointed at Anthropic's Claude Sonnet. CollabIntel also screens any ingredients visitors type in before they ever reach the model, because anyone who has put a free-text box on the public internet knows exactly what people will try to type into it.
Every generated movie gets saved to SQLite through a pure-Go driver, so each one has a shareable link like /movie/NTTCGQ while the binary stays CGO-free. It ships as a distroless Docker container using about 6 MB of RAM, on a small VPS behind a Cloudflare Tunnel with no open ports. A public AI toy also needs some guardrails, so there are per-visitor and daily rate limits, salted hashes in the logs in place of IP addresses, a strict Content Security Policy, and validation on every reply the model sends back.
The part that surprised me
Speed was the headline I expected. What caught me off guard was how carefully it tested its own work, the way a good engineer would. It drove a headless browser through every flow at both desktop and phone sizes, and found that a token limit was quietly chopping long movies off mid-sentence. It noticed that with dialogue set to zero, the model would sometimes give the hero no final line at all, and its fix was to display "…" in that slot, which is funnier than anything I would have written. Before deploying, it also warned me that Docker's published ports bypass the host firewall, a gotcha that has bitten plenty of people who should have known better (I'm not naming names, but I've been one of them).
None of that is glamorous work. It's the stuff that separates a demo from something you can leave running on the internet without checking your phone every twenty minutes, and it's usually the first thing to get skipped when someone is racing a clock. Watching a tool do that unprompted changed how I think about where these things are actually useful.
So go make a movie. Give your hero a tragic past, a rental sedan he really shouldn't be driving that fast, and a garden hoe, then share the link and tell me how it ends. The movie I was watching runs about 100 minutes, and the site took 51. The plot holes are about the same.