Dropping Laravel from the Lottery Generator

6 Aug 2026 min read

A framework-sized app that was not

Last December I wrote about using AI to drag the lottery generator into the present. That post was about Laravel versions, tests, and not wanting to touch Composer conflicts by hand.

A few months later (and what feels like several million Dependabot PR merges later) I started to ask myself, is this Laravel thing really worth it for such a small app? Probably not!

What changed

In August 2026 I migrated it to vanilla PHP 8.3–8.5. Composer stays for autoloading and the dev tools. The public folder is a front controller. Templates are plain PHP. CI still runs Pint, PHPUnit across a few PHP versions, Playwright, and PHPMD.

The live site is the same URL. The behaviour is the same on purpose. The win is what is not there: no database, no framework upgrade treadmill, and a deploy that is composer install --no-dev onto Azure with public/ as the web root.

Was AI involved? Of course it was

The migration went through as a proper epic with tests moved, leftovers deleted, and docs rewritten. I still used agents for the boring mechanical bits, the same deal as last time. Judgement was deciding the framework was the problem, not the PHP.

Project details

The updated write-up is here: National Lottery Generator App.

Final thoughts

Keeping a tiny app on a big framework is a kind of nostalgia. It is also a tax. Once the tests existed, taking Laravel out was the cheaper way to keep the joke running.