A stack is not a list of favourite tools. It is a bet about what you refuse to build yourself. Here is the default we reach for on day one of a new product, the six things we quietly removed from it, and the condition that tells you to leave each layer behind.
Ask ten agencies what stack they use and you will get ten lists of tools. The list is the least interesting part. What actually matters is the reasoning underneath it: a stack is a set of bets about which problems you are willing to spend your only nine months of runway solving, and which ones you are going to pay somebody else to have already solved.
This is the default we start every new client product on in 2026. It is a default, not a doctrine — the last section of this article is a list of the things we removed from it, and every layer below ships with the condition that tells you to leave.
One codebase for the marketing site and the product. One database that holds relational data, documents and embeddings. One deploy target until the product earns a second one. Everything that is not your differentiator, bought rather than built.
The column on the right is the one that matters. Most stack arguments are really arguments about scale that has not arrived yet — teams adopting the architecture of a company a hundred times their size, and paying for it in velocity every single week until they run out of money.
None of the following are bad technology. Several of them are excellent, and we still use most of them when the situation calls for it. They simply stopped being the right first choice for a team of four with nine months of runway.
This is the single change that has saved our clients the most money and the most embarrassment. Authentication looks like a two-day job and it is not. It is sessions, refresh, password reset, email verification, social providers, multi-factor, rate limiting on every one of those endpoints, and an audit trail. It is also the first place a security reviewer looks, and the place where AI-assisted code most often ships something that works but is not safe.
A managed provider gets it right on day one for less than the cost of the security review you would otherwise be paying for. There is exactly one good reason to build it yourself: a compliance or data residency rule that forbids the vendor. Wanting to own it is not a reason.
Splitting the backend out before you have a second consumer for it buys you nothing and costs you a deploy pipeline, a second on-call surface, a network hop, and a versioning problem between two things that ship together anyway. Start colocated. Split it the week a mobile app or a partner integration genuinely needs the same endpoints — and by then you will know what the boundary should actually be, which you do not know now.
This is the newest entry on the list and the one clients push back on most. If your product needs retrieval, the instinct is to add a specialised vector store. For the first few hundred thousand documents, putting embeddings in your existing Postgres database with pgvector is faster to build, cheaper to run, and removes an entire category of bug: the sync job between the database that holds the truth and the index that holds a stale copy of it.
Move when your corpus is genuinely into the millions of vectors or you need hybrid search with re-ranking. Most products never get there, and the ones that do will have the revenue to pay for the migration comfortably.
Product type rarely changes the whole stack. It changes exactly one decision, and knowing which one in advance is most of what experience buys you.
Two of these deserve calling out. For B2B SaaS, model organisations, roles and invitations into the very first schema even if launch is single-user — retrofitting multi-tenancy is the most expensive rewrite we are ever asked to do, and it touches every query in the codebase. For marketplaces, build the money path before the browsing experience, because a ledger that was added after launch has to be reconciled against history that was never designed to be reconciled.
Two years ago the AI layer was a feature decision. In 2026 it is an architectural one, because it changes what the data layer has to do. Retrieval needs the same permission rules as your API. Embeddings need to be regenerated when source content changes. Model responses need to be logged in a form you can evaluate later, which means your observability layer has to handle content, not just metrics.
This is why the AI layer sits inside the stack diagram rather than beside it, and why we treat the model provider like any other critical dependency: routed, budgeted, monitored, and swappable. The single biggest architectural mistake we see is scattering direct model calls across a codebase. Put them behind one module. When pricing changes, a better model ships, or you need to route easy requests to a cheaper tier, you want that to be one file and not forty.
The AI layer is also the only layer with a recurring bill attached. We broke down what an agent feature actually costs to build and to run, with the arithmetic shown.
Read: What an AI agent feature actually costsThose three rules have killed more stack proposals in our own team than any technical argument. They are also why our default has changed remarkably little in two years while the surrounding discourse changed completely.
Assume we are wrong about at least one layer above. We usually are — the dropped list is what being wrong looks like in practice. What protects you is not picking correctly, it is keeping the cost of being wrong low: business logic that does not import your framework, data access behind a boundary rather than sprinkled through components, and an application that could run in a container tomorrow if the platform bill ever overtook the salary of the engineer it saves.
“The stack you choose matters far less than how cheaply you can change your mind about it in eighteen months.”
If you want the longer argument about the framework layer specifically — why we pick Next.js for most client work and the cases where we deliberately do not — we wrote that one separately.
How we evaluate frameworks for every client MVP, including the projects where the answer is not Next.js at all.
Read: Next.js vs. everything elseAnd if you are staring at a greenfield product right now and would rather not spend three weeks arguing about tooling before writing a line of feature code, that first decision is a conversation we have had many times. It usually takes about an hour.
Our default is Next.js and TypeScript for the interface, colocated route handlers for product logic, Postgres with pgvector for data and retrieval, a hosted model API for the AI layer, and bought services for auth, payments, email and analytics. The important part is not the list — it is that every layer has a documented condition telling you when to leave it.
Almost never. Authentication looks like a two-day job and is not: sessions, refresh, password reset, verification, social providers, multi-factor, rate limiting and an audit trail. It is also the first place a security reviewer looks. The only good reason to build it is a compliance or data residency rule that forbids the vendor.
Not at first. For the first few hundred thousand documents, putting embeddings in your existing Postgres database with pgvector is faster to build, cheaper to run, and removes the sync job between the database holding the truth and the index holding a stale copy. Move when your corpus reaches millions of vectors or you need hybrid search with re-ranking.
The week a second consumer genuinely needs the same endpoints — a mobile app or a partner integration. Splitting earlier buys nothing and costs a deploy pipeline, a second on-call surface and a versioning problem between two things that ship together anyway.
Tejas Patel
Founder & CEO, VeltrexLabs
Tejas is the Founder & CEO of VeltrexLabs, a product-focused development agency that has shipped MVPs for 13+ startups across food-tech, SaaS, e-commerce, and enterprise software.


Take the first step towards digital success with VeltrexLabs by your side. Our team of experts is eager to craft tailored solutions that drive growth for your business. Whether you need a stunning website, a powerful mobile app, or a data-driven marketing campaign, we've got you covered. Let's embark on this transformative journey together.
