As a tech leader with 30 years in the PHP trenches, I have spent the better part of the last decade telling my teams: Do not build your own framework. It is a standard piece of senior leadership wisdom. You buy into an ecosystem like Laravel or Symfony to avoid the maintenance tax and leverage the community.
But recently, the fundamental nature of how I build software shifted. I entered the era of Vibe Coding.
When my primary co-developer is an LLM like Claude 3.5 Sonnet or GPT-4o, the traditional trade-offs change. I realized that the heavy abstractions, magic facades, and sprawling legacy baggage of modern stacks were becoming a tax on productivity. The AI was hallucinating because it could not see the truth of the framework in one context window.
So, I did the unthinkable. I built FW Framework.
Stripping the Legacy Baggage
I did not set out to write a framework from scratch for the sake of it. I started by looking at best practices and aggressively removing the legacy garbage that has haunted PHP for a decade. I looked at the lean, high-concurrency models of ExpressJS and Go and asked: Why cannot PHP do this?
The shocking answer? It can. Modern PHP 8.4 plus has evolved so far beyond its legacy reputation that once I stripped away the old baggage, the speed was nothing short of staggering.
It Started as a Fiber Experiment
It started as an experiment with PHP 8.4 Fibers. I wanted to see just how fast I could make non-blocking I/O feel in a language I have loved for three decades. The results were so fast, achieving Go-like concurrency and sub-millisecond overhead, that I just kept going.
What is wild is that as the feature list grew, the performance was not impacted. I kept adding the features I use every day: a high-performance ORM, a sleek API layer, and a robust database abstraction. Usually, as you add features, you see a performance dip. With FW, the architecture stayed so lean that the overhead remained virtually non-existent.
Built-in AI Intelligence
What makes FW different is that I baked the AI instruction manual directly into the core. I included specialized prompts, full documentation, and strict architectural rules in the root directory. When you drop this framework into an LLM, it reads a manifesto on how to extend it. It follows my strict rules for Result monads and Fiber-safe operations, making Vibe Coding feel like high-precision engineering.
Context Matters
Would I use the framework instead of something like Laravel? Depends on the context. If you need a massive ecosystem of pre-built packages, an army of developers who already know the syntax, and a decade of community-vetted plugins, Laravel is the gold standard.
However, if you are building high-concurrency microservices where performance is a feature, and you want to leverage an AI-first workflow without the friction of heavy abstractions, FW is designed for that specific future. It is about choosing the right tool for the modern developer experience.
A Word of Caution
I must be clear: rolling your own framework is not for the faint of heart. It requires a deep understanding of low-level I/O, security primitives, and the long-term commitment to maintain the core. In most cases, for most teams, it makes way more sense to stay within an established ecosystem like Laravel. You are trading community support for raw control. For me, the trade-off was worth it to unlock this level of speed, but it is a path you should only take if you have the scars to prove you can handle the architecture.
The Specs: Breaking the Speed Limit
By leveraging FrankenPHP in worker mode, I eliminated the boot-time overhead of traditional FPM. Testing on a MacBook Air, the numbers were consistent:
- 13,593 RPS: Health check baseline.
- 7,812 RPS: Active database writes.
- 5,707 RPS: Full-stack homepage render.
- 26ms Average Latency: Under heavy concurrent load.
- Engineering for Transparency
The framework follows a feedback loop I have perfected for the AI era: Architectural Intent (Me) followed by Implementation (AI) followed by Stress Testing (wrk) followed by Iterative Refactoring (AI).
- Fiber-Aware Connection Pooling: I built a custom pool that suspends and resumes Fibers, allowing massive concurrency without blocking the main event loop.
- Zero-Dependency Architecture: I avoided Composer packages for the core. Every line of code is visible, ensuring the AI has the entire context in its window.
- Result and Option Types: No null, no exceptions. By using explicit types, the flow of data is so clear that the AI can refactor a whole module without breaking a sweat.
The Verdict
Stop fighting your framework. I built FW because I wanted to bring my PHP expertise into the vibe coding era without the friction of traditional, magic-heavy stacks. It is a proof of concept that you can maintain your existing skills while achieving elite performance in a modern environment.
The 1.0 is live, released under the MIT license. It is fast, it is secure, and it is built for the way we work in 2026.
Get the framework here: https://github.com/velkymx/fw
Discover more from AJB Blog
Subscribe to get the latest posts sent to your email.







