The Context
When I decided to rebuild my portfolio site, the framework question came up immediately. Laravel, Symfony, Slim — I've worked with all of them. But this time, the site is the demonstration of my skills. Using a framework would showcase Taylor Otwell's skills, not mine.
The Micro-Architecture
The pipeline is simple and transparent:
Request → Bootstrap → Middlewares → Router → Controller → Service → View → Response
Each component is a PHP 8.2+ class with declare(strict_types=1), readonly properties, and zero magic. The Router is 60 lines. The View engine is 80. The entire application code fits in ~2000 lines.
The Benefits
- Performance: TTFB < 50ms locally, no 15ms framework bootstrap overhead
- Total understanding: every line is mine, I know exactly what happens
- Security: no framework attack surface, no CVEs to monitor
- Size: zero Composer dependencies in Phase 1
The Pitfalls
The main trap is reinventing the wheel unnecessarily. You need to know when to stop. My Router handles static routes and named parameters — no complex middleware pipeline, no DI container, no service locator. Just what's needed for a portfolio site.
Conclusion
For a developer portfolio site, zero framework is a relevant choice. For a complex business application, I'd use Laravel or Symfony without hesitation. The key is choosing the right tool for the context — that's what software architecture is about.