On reviving Univeros, and why layering AI on top of a framework is the wrong approach.
There’s a project folder I’ve avoided revisiting for almost a decade.
About seven years ago, I started working on a PHP framework that quickly became more than just a side project. It included a dependency injection container I was oddly proud of, a middleware pipeline, typed collections, and several unfinished packages with names I eventually couldn’t justify anymore. I poured countless nights and weekends into it, driven by both passion and curiosity.
But then life happened. Clients demanded my focus, I moved to new places, and the next opportunity came along. Slowly, the project fell silent. The folder where all my work lived grew quiet and untouched for years. It became a sort of a small, specific kind of guilt. A reminder of what I once started but never quite finished.
It's now clear to me that the tedious, repetitive tasks (aka the “plumbing”) killed the joy and momentum of the project, not the challenging parts, which I actually enjoyed. The endless cycle of writing actions, DTOs, responders, routes, migrations, repositories, tests, and updating docs was necessary but extremely unexciting.
But last year's eureka moment was powerful. The very busywork that made me abandon the project is exactly what AI agents excel at today. But there's a catch. The framework has to be built in a way that allows me to actually trust what the agent is doing.
So, I decided to revive the project as . It measures how cheaply an agent goes from a cold prompt to a passing acceptance suite, comparing Univeros and a conventional baseline. I published the methodology with its weaknesses listed first, because a benchmark that doesn't survive scrutiny is worse than no benchmark. The claim is deliberately narrow: deterministic, scannable output costs fewer tokens than re-reading the source every time. That's the foundation of the approach.
Coming Home to PHP
I imagined that the sense of nostalgia would be a bittersweet one, much like reading a journal entry from when you were in your twenties.
But this wasn’t the case since PHP has grown up in the meantime.
There’s almost nothing left of the language I knew before 8.3; it has evolved significantly since then. There are now real typed properties: readonly classes, enums, constructor promotion. First-class attributes now turn the “magic” used by the framework into something the engine itself understands. An agent can read this with reflection instead of guessing at. It’s clear that the ecosystem has become a “grown up.”
The Univeros framework was always intended to be free of magic and fully typed. I just didn't have a language mature enough to make it pleasant, or a reason compelling enough to finish. Now I have both.
What's in the Box
Univeros consists of 40 independently usable packages under one bundle. Install everything with composer require univeros/framework, or pick pieces: univeros/cache, univeros/http, univeros/container. It follows
Source: , Univeros’ official identity module that provides a complete authentication and authorization system for applications built on the framework.
Univeros is an MIT licensed project, built at 2am.tech.
SOCIAL SHARE CARD GENERATOR