Every choice has a reason.
Every reason is your advantage.
Tiger's stack isn't chosen to be trendy — it's chosen to be proven, portable, fast, secure, and understood by AI. Every layer runs the web today, has run it for years, and will keep running it — so what you build stays fast, stays yours, and is easy for your AI to work on.
The thread through every choice below: predictable, explicit architecture that an AI can read and extend with confidence. Rigid structure isn't old-fashioned here — it's exactly what makes Tiger a great platform to build on with Claude Code.
PHP 8
PHP powers roughly 77% of all websites — WordPress, Wikipedia, Etsy, Slack's backend, Mailchimp. And PHP 8 is fast and modern — JIT-compiled, with optional strict typing when you want it. Each request runs in a clean, isolated process — no shared state to leak, stateless by design, which makes it stable by design. The talent pool is huge and affordable, so hiring is a solved problem.
Modernized ZF1 — rigid, predictable MVC + SOA
Tiger runs a PHP 8 evolution of Zend Framework 1's architecture: enterprise-grade structure with modern language features. The payoff for AI-assisted development is huge — controllers live in the controllers directory, models in models, views in views, and every module follows the same shape. When your AI reads a Tiger app it doesn't guess; it reads a predictable pattern and works with confidence. The wiring is explicit — what you see is what runs — so nothing is hidden behind runtime magic the AI has to infer.
A GRX monolith
Twenty microservices mean twenty deployments, network boundaries to debug, and orchestration overhead that needs a full-time DevOps engineer — distributed-systems complexity at startup scale. A well-structured monolith is faster to build, easier to debug, simpler to deploy, and cheaper to run. Tiger is one application, one process, one deployment, ~10ms responses — no service mesh, no API gateway, no container choreography.
A zero-build frontend
Drop a JavaScript file in, reference it in your view, and it works — React, Vue, Alpine, vanilla, or nothing. No Webpack, no Vite, no Babel, no bundler, no node_modules folder with tens of thousands of transitive packages you've never audited. That's also a security decision: deep npm dependency trees are a real supply-chain attack surface, and the best defense against a supply-chain attack is not having a supply chain. The best part is no part.
MariaDB
Tiger ships on MariaDB: the open-source continuation of MySQL, maintained by its original creators after Oracle acquired MySQL — fully MySQL-compatible, ubiquitous, and free of vendor lock-in. A great, boring default that runs everywhere. But the data layer is database-agnostic: point it at any engine with a PDO driver — PostgreSQL, MySQL, Oracle, or SQL Server — and the query builder and models work the same. Your database stays invisible, and yours.
Apache or Nginx
Apache has served the web since 1995, Nginx since 2004; between them they handle most of the traffic on earth, and every host supports them. Tiger doesn't need an edge network, serverless functions with cold-start penalties, or a vendor routing layer — just a web server that hands a request to PHP. No cold starts, no invocation fees. The request arrives, PHP handles it, the response ships.
Composer
Composer dependency trees are flat and explicit: you declare what you need, versions resolve deterministically, you commit the lock file, and every install is identical. Tiger's composer.json is a short list of intentional packages from established vendors — AWS SDK, Stripe SDK, PHPMailer — each a deliberate choice with a security team behind it. You can actually read the list and know what's there and why.
Server-side rendering
A browser requests a Tiger page and gets complete, rendered HTML — no blank screen while a client framework boots, no "loading…" spinner, no hydration step. That means fast by default (HTML paints before any framework could bootstrap), SEO-ready by default (search engines see full pages), accessible by default (screen readers see content immediately), and resilient by default (if JavaScript fails, the page still works).
DB-backed sessions
On login, Tiger writes a session record and hands the browser an opaque token — a UUID that means nothing on its own. Every request looks up the session and the ACL evaluates permissions in real time. The token carries identity only, never roles or claims, so there's nothing to forge and permissions can be changed or revoked instantly — no waiting for a token to expire. Less is more: the token carries identity, the server carries everything else.
MVC + SOA
Model, View, Controller for the web layer — plus a service layer (SOA) where the business logic lives. Each has one job and one predictable location: data in the model, presentation in the view, thin request-handling in the controller, business logic in the service. Every layer can be tested, changed, or replaced independently. For AI-assisted development that's the whole game: when your AI needs to change how data is stored it goes to the model; how a page looks, the view; how the business logic behaves, the service. It never has to wonder where something lives. Predictability is productivity.
BSD-3 license
Use it however you want — modify it, build a commercial product on it, sell that product, keep all the money. The only asks: keep the license notice, don't use the project name to endorse your product, and don't blame us if something breaks. Unlike copyleft licenses (GPL/AGPL), where derivative or even networked use can force your own code open, BSD-3 is the license enterprise legal teams approve without a fight — protective enough to trust, permissive enough to be practical.
The full stack, one table
| Layer | Tiger's choice | Why |
|---|---|---|
| Language | PHP 8 | 77% of the web, huge talent pool, process-isolated, fast |
| Framework | Modernized ZF1 | Rigid MVC + SOA, AI-native structure, enterprise patterns |
| Architecture | GRX monolith | One process, one deploy, ~10ms, no microservice sprawl |
| Database | MariaDB, or any PDO engine | Postgres, MySQL, Oracle, SQL Server; MariaDB by default, no lock-in |
| Web server | Apache / Nginx | Decades proven, zero cold starts, no vendor runtime |
| Dependencies | Composer | Flat, explicit, auditable — no npm supply-chain risk |
| Frontend | Zero-build | No bundler, no transpiler, bring your own JS |
| Rendering | Server-side | Complete HTML, no hydration, SEO + accessible by default |
| Sessions | DB-backed | Server-side state, opaque token, no JWT exposure |
| Pattern | MVC + SOA | Separated concerns, predictable structure, AI-friendly |
| License | BSD-3 | Enterprise-safe, commercially permissive, no copyleft |
You own it.
No vendor lock-in. No proprietary runtime. No build pipeline that breaks. No dependency chain you can't audit. No client-side token carrying your security model in plain text. No microservice constellation that needs a team to run. One framework, one server, one process — full ownership, ~10ms.