Swasthya Sarathi
A healthcare-companion platform for Swasthya Sarathi
A website and mobile app development project for a multi-service healthcare companion — It helps peo...
Read itLaravel 12 · Octane · Horizon · Filament
The framework we have built more business systems on than any other. Laravel 12 with Octane for speed, Horizon for job queues that survive a bad day, and Filament for a back office your operations team will really use.
Last updated
Laravel is not exciting, and that is the whole reason to use it. A queue system that works. An ORM that does not fight you. Database changes that survive four years of schema changes. An admin panel you get for free, instead of budgeting three days for it and regretting it for five years. We use Laravel when the system handles many transactions and the business rules are complicated: orders, payments, inventory, approvals, matching accounts, reporting. That is most business software. The framework has an answer for nearly every problem such a system will hit. The answer is usually the one the next Laravel engineer would pick too, so the code outlives the team that wrote it.
Talk to a Laravel engineerOn Octane with FrankenPHP, measured on a live I/O-bound API, not in a benchmark.
Typical gain over PHP-FPM once the application is careful about state kept in memory.
Watched by Horizon, on the busiest queue we run now. Safe to repeat, can be replayed, and failed jobs are kept.
On the main business paths, with Pest. Feature tests that use the database, not fake parts that agree with themselves.
Laravel is the framework we have put more live systems on than any other, and the reason is plain: a good team can build a correct, well-tested business application in it that is easy to maintain, faster than in anything else. The person who takes it over in three years will understand what they are looking at.
Laravel Octane starts the application once and keeps it in memory, serving requests from a long-running worker under FrankenPHP or Swoole. On an I/O-bound API we often see requests per second go up by three to five times and p95 latency drop below 40 ms, because you no longer pay for framework start-up on every single request.
The trap is that a worker kept in memory changes the rules. Static properties stay between requests. Singletons hold data you did not mean to keep. A container binding that captured the first request's user will happily show that user's data to the next person. Octane is a speed tool for code that is already careful about state. It does not fix a slow application, and we will not switch it on to hide N+1 queries. We find those first, with Telescope and Pulse, and fix them.
Anything that talks to a system we do not control goes on a queue. Payment webhooks, GST filings, carrier APIs, invoice PDFs, e-way bill generation, sending many notifications: all of it is a job, backed by Redis, watched by Horizon, on a named queue with its own workers, so a slow third party cannot block your checkout. Jobs are safe to run twice, because a queue will deliver twice one day and that day should pass quietly. Failed jobs go into a table with their full data, and there is a screen where an operator can look at one and run it again without a developer opening a terminal.
This is the biggest design difference between a Laravel application that survives its first Diwali sale and one that does not.
Nearly every business application needs an internal admin. It nearly always gets three days at the end of the project and is hated for the next five years. We build it in Filament instead: screens over the same Eloquent models, real roles and permissions, bulk actions, exports, activity records, and custom pages where a table is the wrong answer. Your operations team gets a tool they can really work in on day one, and your engineers stop being a human CRUD interface for anyone who needs a record changed.
Pest for tests, with feature tests that use the HTTP layer and the database rather than faking everything until the test means nothing. Database changes that can always be undone. Sanctum for API tokens, Passport when a real OAuth server is truly needed. Scout with Meilisearch or Typesense when search matters. Telescope in staging, Pulse on the live system. Every release sits behind a health check with a one-command rollback, because the important question about a release is not whether it will fail but how fast you can undo it.
| Choose Laravel | Choose something else | |
|---|---|---|
| Transactional business system | Yes, and it is not close. Orders, payments, inventory, approvals, reporting: Laravel has a proven answer for every part of it. | Nothing we would suggest over it for this kind of problem at this budget. |
| 100k concurrent WebSocket connections | No. PHP holds one process per connection. This is the wrong tool and no amount of tuning fixes that. | Node.js or Go for the socket layer. Keep Laravel for the business rules behind it and let the two talk over Redis. |
| CPU-bound ML or heavy data processing | No. You will be fighting the language, and a library that already exists elsewhere will do better. | Python. Run it as a separate service and have Laravel call it through a queue. This is a plain, reliable way to do it. |
| Public site that must rank hard | Blade makes fine HTML and ranks perfectly well. For most sites this is a complete answer. | If the marketing site is very important to your business, a Next.js front end on a Laravel API gives you better tools for it. |
| Your team is JavaScript-only | Consider it anyway. Laravel plus Inertia keeps React on the front, and learning it takes two weeks, not three months. | If the team truly will not maintain PHP, NestJS on Node is the closest thing to Laravel's clear structure in that world. |
| You need an admin panel in a week | Filament. Screens over your existing models, real permissions, bulk actions, activity records. Days, not sprints. | There is no better answer in any tool set we work in. This is Laravel at its most productive. |
Inventory, buying, approvals, GST-aware invoicing, and reports so the finance team stops copying data to Excel.
Lead routing, pipeline, activity records, and quota and commission rules that hold up when a real sales director uses them.
REST APIs with versions, using Sanctum or Passport, request limits, keys that stop repeat actions, and OpenAPI docs that are generated, not written by hand.
A real back office over your existing models: permissions, bulk actions, exports, activity log. Days of work, not a sprint.
Measuring, removing N+1 queries, index work, then Octane and separate Horizon worker pools. Usually cheaper than the rewrite you were quoted.
CodeIgniter, Yii, or a 2014 Laravel that never upgraded. Moved page by page into modern code, with releases all the way.
What we do when a Laravel application is slow and somebody has already quoted you for microservices.
Telescope and Pulse in staging with data like the live data. The slowest endpoint is almost never the one the team suspects. The fix is almost always an N+1 query or a missing index, not a new design.
Eager loading, composite indexes, and moving report queries onto a read replica. This alone often takes p95 down by 60 to 80 percent, and it costs a fraction of anything else on this list.
Every call to a system you do not control becomes a queued job: payment webhooks, carrier APIs, GST filings, PDFs, sending many notifications. Jobs are safe to repeat, tried again after a wait, and failed ones are kept with a screen to run them again.
Horizon with named queues and separate worker pools, so a pile of invoice PDFs cannot block checkout. Each pool gets its own alarm for size and age, so you find out before your customers do.
Once we have checked how state is handled and fixed the queries, Octane on FrankenPHP gives three to five times more throughput. It costs one config change and a careful check of static properties and singletons.
FrankenPHP workers keep the application in memory. Framework start-up stops being a cost on every request, which is where most of the gain comes from.
A container that keeps no state behind a load balancer, with Redis for cache and sessions. Most systems we run cost between ₹8,000 and ₹40,000 a month to host.
Jobs that are safe to repeat, longer waits between retries, and a table of failed jobs with a replay screen an operator can use without a developer or a terminal.
Sanctum or Passport, rule-based permission checks, and roles enforced in the model layer, not left for the controller to remember.
Pulse on the live system, Sentry for errors, alarms on queue size and age. You should never learn about an outage from a customer.
Releases with no downtime behind a health check, database changes that can always be undone, one-command rollback. The question is not whether a release fails but how fast you undo it.
A fleet, ePOD and route-planning platform that works offline first, for drivers on roads with poor signal. The two ready...
A Shopify store for a Surat ethnic-wear label. It has 200+ SKUs of lehengas, sarees and suits, sorted by type, colour, f...
A Shopify storefront for a Surat watch and eyewear retailer — where shoppers can browse by gender, brand, style and comb...
Most systems we are asked to rebuild do not need rebuilding. They need the queries fixed, the third parties moved onto queues and the workers kept apart. We will tell you honestly which one you are.
FAQ
Proof
Swasthya Sarathi
A website and mobile app development project for a multi-service healthcare companion — It helps peo...
Read itMV Tech Education
A website development project for a Bihar vocational institute. It is a course list and admissions s...
Read itPatna Taxi
A website development project for a Patna and Muzaffarpur cab operator. It is a fast taxi-booking si...
Read itReact that is built on the server, ranks in Google and does not send 300 KB of JavaScript...
ExploreOne codebase, both stores, and a release you can fix the same afternoon. We build React Na...
ExploreNode is the right answer for live features, streaming and many users at once. It is the wr...
ExploreLet's talk laravel development
A senior engineer reads every enquiry. You'll get a real answer — scope, risk and a number — within one business day.