We get asked about our technology choices regularly. Here is a complete, honest account of what we use, what we have tried and moved away from, and the principles that guide our decisions.

Backend: Laravel on PHP 8.3

Our primary backend framework is Laravel. We chose it for its mature ecosystem, excellent ORM, built-in queue system, and strong conventions that make onboarding new engineers fast. PHP has a reputation problem that does not reflect the reality of modern PHP 8.x — it is a high-performance, strictly-typed language that compiles well and runs fast on standard infrastructure.

We use Laravel for every API-heavy backend, every background job system, and every admin panel. We have delivered dozens of production systems on it. We know its limits and its strengths intimately.

Frontend: Next.js and Vue 3

For customer-facing applications and marketing sites, we use Next.js. For internal business tools and dashboards, we use Vue 3 with the Composition API. The split is deliberate: Next.js gives us excellent SEO and performance for public-facing products; Vue gives our internal tool developers a faster iteration cycle.

Database: MySQL with Redis

MySQL is our primary data store for all transactional systems. We have run it at scale across all our products without issues. For caching, session management, and queue backends, we use Redis. We add read replicas when query load requires it.

Infrastructure: VPS with Nginx and PM2

We run on dedicated VPS infrastructure rather than managed cloud platforms. This gives us predictable costs, full control over configuration, and the ability to optimise at the OS level. Every deployment is Nginx-fronted, PM2-managed for Node processes, and Supervisor-managed for PHP workers.

What We Do Not Use

We do not use microservices unless a project explicitly requires independent scaling of specific components. We do not introduce new dependencies without evaluating maintenance burden, security record, and licence implications. We do not chase framework novelty. The best technology for a production system is almost always the boring one — the one that has been in production for ten years and has had its failure modes thoroughly documented.

The Principle Underneath It All

Every technology choice is a long-term maintenance commitment. We choose tools we are willing to maintain, debug, and explain to a client's internal team five years from now. Novelty is not a selection criterion. Reliability, maturity, and community support are.