Swasthya Sarathi
A healthcare-companion platform for Swasthya Sarathi
A website and mobile app development project for a multi-service healthcare companion — helping peop...
Read itPHP 8.4 · Laravel · Symfony · Composer
Modern PHP is a strictly typed, JIT-compiled language, and the fastest route to a correct business system we know. We do PHP development on Laravel and Symfony — typed, statically analysed, queue-backed, and legible to whoever inherits it.
PHP has an image problem and a track record that flatly contradicts it. It is the server-side language behind roughly three quarters of the sites whose backend we can identify, and modern PHP — 8.4, strictly typed, JIT-compiled, Composer-managed — is a genuinely good tool that the internet argument never caught up with. We reach for PHP when the system is transactional and the domain is complicated: orders, payments, inventory, approvals, reconciliation, reporting, an admin panel. Laravel and Symfony have a mature answer for nearly every problem such a system hits, and the answer is usually the same one the next PHP engineer would have chosen — which is precisely what keeps the codebase alive after the team that wrote it has moved on.
Talk to a PHP engineerPHP's share of sites whose server-side language is identifiable, per public W3Techs data. Not a claim about our clients — a fact about the web.
Our target for an I/O-bound API on PHP 8.4 with OPcache and JIT, measured in production rather than a benchmark.
Strict static analysis from the first commit. An untyped property or a suppressed error fails the build, not a review.
Pest or PHPUnit feature tests that hit the database, not mocks agreeing with themselves.
The PHP people argue about on the internet stopped existing around 2015. Modern PHP — 8.3 and 8.4 — is a strictly typed, JIT-compiled language with enums, readonly properties, first-class callable syntax, fibers and an ecosystem held together by Composer and the PSR standards. We have shipped more revenue-carrying systems on it than on any other server-side stack, and the reason is unglamorous: a disciplined team ships a correct, tested, maintainable business application in PHP faster than in almost anything else, and the engineer who inherits it in three years recognises what they are looking at.
Most of our PHP development is Laravel, because for a transactional product — orders, payments, inventory, approvals, reporting, an admin panel — its batteries-included answer to every problem is usually the one the next PHP engineer would have reached for anyway, which is what makes the codebase outlive the team that wrote it. We reach for Symfony when the domain wants explicit architecture over convention: a large system with many bounded contexts, a long-lived platform where the framework should stay out of the domain model, or a team that already lives in Symfony components. Both are excellent; choosing the wrong one for the shape of the problem is the mistake we are most often asked to unwind, and we decide it in week one and write down why.
Every project we start runs PHPStan or Psalm at a high level from the first commit, with strict types declared, real return types everywhere, and generics annotations on collections. The old complaint that PHP lets anything through is a complaint about undisciplined PHP. A modern codebase with static analysis in CI catches the same class of error a compiler would, before it reaches a review, let alone production. An untyped property or a suppressed analysis error is a review failure, not a style preference.
Anything that talks to a system we do not control goes onto a queue — payment webhooks, GST filings, carrier APIs, invoice PDFs, e-way bills, notification fan-out. Jobs are idempotent, because a queue delivers twice eventually and that day should be uneventful; they retry with backoff and land in a dead-letter store with the full payload and a screen an operator can replay from. This single architectural habit is the largest difference between a PHP application that survives its first sale day and one that falls over inside it.
Half the PHP work that reaches us is a system on PHP 5.6 or 7.x — raw mysql_* calls, no framework, no tests, business logic braided through HTML. The instinct to rewrite it from scratch is almost always wrong and almost always expensive. We put the running code under characterisation tests first, lift it onto a supported PHP version and Composer autoloading, then strangle it route by route into a modern Laravel or Symfony codebase that ships the whole way through. The business keeps trading while the foundation is replaced underneath it.
| Choose PHP | Choose something else | |
|---|---|---|
| Transactional business system | Yes, and it is not close. Laravel or Symfony has a mature answer for orders, payments, inventory, approvals and reporting. | Little we would recommend over it for this shape of problem at this budget. |
| 100k concurrent WebSocket connections | No. Even with an app server, this is not where PHP is strongest. | Node.js or Go for the socket tier; keep PHP for the business logic behind it and let them talk over Redis. |
| Heavy CPU-bound ML or data crunching | No. You would fight the language and lose to libraries that already exist elsewhere. | Python, run as a separate service that PHP calls over a queue. A boring, reliable pattern. |
| Need an admin panel in a week | Laravel with Filament: resources over your models, real permissions, audit trail. Days, not sprints. | Few ecosystems match this. PHP at its most unfairly productive. |
| Team is JavaScript-only and will stay so | Consider it anyway — the learning curve is a fortnight — but do not force it. | NestJS on Node is the closest thing to Laravel discipline in that ecosystem. |
| Ageing PHP app everyone wants to bin | Yes. Modernise it route by route while it keeps trading — usually far cheaper than the rewrite you were quoted. | Only rebuild from scratch when the audit proves the code is genuinely beyond salvage. |
Six shapes of engagement cover nearly everything we are asked to do in PHP.
Inventory, procurement, approvals, GST-aware invoicing and the reporting layer finance stops exporting to Excel for — usually Laravel, Filament for the back office.
Versioned REST APIs with Sanctum or Passport, rate limiting, idempotency keys and OpenAPI docs that are generated from the source, not hand-written.
Large systems with real bounded contexts, where explicit architecture and a framework that stays out of your domain model earn their keep.
PHP 5.6 or 7.x, no framework, no tests — put under characterisation tests and strangled into modern Laravel or Symfony while it keeps shipping.
Profiling, N+1 elimination, index surgery, then isolated worker pools and an app server. Usually cheaper than the rewrite you were quoted.
Pricing engines, order and fulfilment workflows, subscription and rental logic that will never fit into somebody else's data model.
The things a buyer evaluating PHP actually wants to know, answered without the hedging.
Bytecode cached, hot code JIT-compiled. Most of our PHP APIs sit under 45ms at p95 once the queries are disciplined — and the queries are always the real lever.
Strict types, real return types, and PHPStan or Psalm at a high level in CI catch the errors people assume PHP lets through. Undisciplined PHP is the problem, not PHP.
Idempotent jobs, exponential backoff, a dead-letter store and a replay screen an operator can use without a developer or a terminal.
PHP and Laravel talent in India is large and reasonably priced, so you can staff the system internally later without a rescue mission or a bidding war.
A stateless container behind a load balancer and Redis for cache and sessions. Most systems we run cost between ₹8,000 and ₹40,000 a month to host.
Zero-downtime releases behind a health check, migrations always reversible, one-command rollback. The question is never whether a release fails but how fast you undo it.
The single most common thing we are asked to do with PHP. The sequence is deliberately boring.
We read the code, run it locally, map the data model, and write characterisation tests around the paths that carry money. You cannot safely change what you cannot describe, so we describe it first.
Off end-of-life PHP and onto 8.3 or 8.4, with Composer autoloading, a dependency inventory and the security holes that have been open for years closed. The app behaves identically; the ground under it is now solid.
A modern Laravel or Symfony application wraps the legacy one and takes new routes. Old and new run side by side behind one front door — no flag day, no freeze on delivery.
Each sprint moves a slice of functionality into the modern codebase with tests, and retires the equivalent legacy path. Progress is visible every fortnight, and you can stop at any point with a working system.
Static analysis and a test suite in CI, observability wired in, reversible deploys, and an architecture note plus an onboarding session so your team owns it — or we stay on a retainer.
Opinionated defaults we will happily swap for something you already run — but these are what we reach for when the choice is ours.
Business platforms doing real volume on Laravel and Symfony, with the constraints written down.
A Shopify storefront for a Surat ethnic-wear label — 200+ SKUs of lehengas, sarees and suits organised by type, colour,...
A fleet, ePOD and route-optimisation platform built offline-first for drivers in low-connectivity corridors — because th...
A Shopify storefront for a Surat watch and eyewear retailer — browsable by gender, brand, style and combo, with predicti...
Most PHP systems we are asked to rebuild do not need rebuilding — they need the queries fixed, the third parties moved onto queues and the framework introduced at the edges. A senior engineer replies within one business day with scope, risk and a number.
FAQ
Proof
Swasthya Sarathi
A website and mobile app development project for a multi-service healthcare companion — helping peop...
Read itMV Tech Education
A website development project for a Bihar vocational institute — a course-catalogue and admissions s...
Read itPatna Taxi
A website development project for a Patna and Muzaffarpur cab operator — a fast, mobile-first taxi-b...
Read itReact that renders on the server, ranks in Google and does not ship 300 KB of JavaScript t...
ExploreThe framework we have shipped more business systems on than any other. Laravel 12 with Oct...
ExploreOne codebase, both stores, and a release you can fix the same afternoon. We build React Na...
ExploreLet's talk php development
A senior engineer reads every enquiry. You'll get a real answer — scope, risk and a number — within one business day.