Blog Details
An honest write-up of the stack we reach for by default, what it earns us on small and mid-size SME projects, and the situations where we deliberately pick something else.
DevLK Engineering Team
15 Apr 2026
English
5
An honest write-up of the stack we reach for by default, what it earns us on small and mid-size SME projects, and the situations where we deliberately pick something else.
We get asked a surprising amount about our default tech stack. Usually it is framed as "why not Next.js?" or "why not Django?" or, every so often, "why not write it in Go?"
Every stack is a set of trade-offs, and ours is too. This post is the honest version of why we reach for Laravel + PostgreSQL on most SME client builds, what those choices earn us, and the handful of situations where we deliberately pick something else.
Our defaults for a typical small-to-mid-size client project look like this:
These are not the objectively-best choices for every project. They are the objectively-best choices for the kind of work we do most: internal tools, booking and inventory platforms, custom CRMs, client portals, dashboards, and SME-scale e-commerce.
Three practical reasons, in priority order.
1. It is boring in the good way. Laravel has been production-stable for a decade. The ecosystem has settled. The patterns for auth, queues, mail, validation, and admin dashboards are all solved problems with well-maintained packages. We are not inventing wheels on someone else's budget.
2. Shipping speed compounds. Our team can stand up the scaffolding for a new internal tool — users, roles, basic CRUD, email, a job queue — in a single afternoon. That is not because we are faster typists; it is because the framework gets out of our way for exactly those patterns that every business app needs.
3. Hiring is realistic in this region. There is a healthy population of mid-level PHP / Laravel developers in Sri Lanka and across the region. If a client ever wants to take the project in-house, we can hand it off without asking them to hire a unicorn.
We also like Eloquent for 80% of queries and are fine with raw SQL for the other 20%. Dropping down to SQL when Eloquent makes a query ugly is not a sin; it is maintenance hygiene.
PostgreSQL is our default database for reasons that are technical but matter at the business layer:
MySQL / MariaDB would be a reasonable alternative; we use it when a client hosts on a provider that strongly prefers it. We just start from Postgres because the defaults are saner and the constraints are stronger.
Our stack is not a religion. There are real cases where we start from a different place:
We are also fine shipping a small static site as plain HTML/CSS when that is genuinely the right answer. Not every project needs a framework.
Sometimes a client comes in with a strong opinion: "We want it in MERN" or "Our CTO says Django." We take these opinions seriously. A few things we say back:
Tech choices are not fashion choices when you are the one supporting the code for the next five years.
Laravel + PostgreSQL is our default because it is the fastest honest way for our team to ship a maintainable SME-scale web app. It is not universally the best stack. It is the best stack for the shape of work we do most. If you are talking to us about a project, expect this to be the starting point — and expect us to push back on it openly if your project is one of the cases where a different stack is genuinely better.
Original Source: https://devlk.com/blog-details.php?slug=why-we-default-to-laravel-and-postgres-for-client-builds
Share what you think about this article.
No comments yet. Be the first to share your feedback.