“What technologies do you use?” is the question almost every client asks in the first conversation. And it’s one of those where an honest answer is hardest to come by — agencies recite popular names (Next.js, React, AWS), clients receive them as evidence the agency “knows what they’re doing,” and rarely is there a real conversation about why that particular technology is right for your specific project.

The actual truth is that there’s no universally best stack. There are right choices for your case and wrong choices for your case. This post breaks down the main technology categories, gives recommendations by project type, and explains how to discuss the choice without getting lost in technical debates.

What a tech stack consists of

A web application has four main layers, each with its own technology choices:

LayerWhat it doesExamples
FrontendThe interface the user seesReact, Vue, Next.js, Svelte
BackendLogic, processing, APINode.js, Laravel, Django, Rails
DatabaseWhere data livesPostgreSQL, MySQL, MongoDB
Hosting / infrastructureWhere everything runsVercel, AWS, Hetzner, Cloudflare

Plus a few additional necessary components: cache (Redis), CDN (Cloudflare), email provider (SendGrid), monitoring (Sentry), analytics. Each has its own choice, but the stack typically revolves around these four.

Frontend: what to choose

The frontend is what the user sees and clicks. The main choices in 2026:

React (with Next.js)

Reality in 2026: the dominant frontend platform. 70 to 80 % of serious web applications are built on some variant of React, most often with the Next.js framework, which handles routing, SSR, and optimisation.

When to choose it: almost always for a serious web application or SaaS product. The biggest ecosystem, the most talent on the market, the best tooling.

Downsides: more complex than simpler alternatives, evolves rapidly (last year’s books are already out of date).

Vue (with Nuxt.js)

Reality: the second-largest framework, particularly popular in Europe and Asia. Smaller ecosystem than React, but easier to learn and cleaner architecture.

When to choose it: if your team already knows Vue, or if you want a simpler framework without React’s complexity.

Svelte (with SvelteKit)

Reality: a growing framework, excellent performance because there’s no runtime. Smaller but high-quality ecosystem.

When to choose it: if performance is critical (very fast pages, low-end devices), or if you want a “modern” development feel with less boilerplate.

Vanilla JavaScript / HTML

Reality: still a valid option for simpler projects. A marketing site, landing page, or internal tool doesn’t have to use React.

When to choose it: simple projects, static pages, where a framework is overkill for something solvable in 50 lines of code.

Our recommendation by project type

  • Marketing site + CMS: WordPress, Webflow, or Next.js + headless CMS
  • B2B application / SaaS: Next.js (React)
  • Internal tool for 5 to 50 users: Next.js or Vue, or low-code (Retool)
  • Simple MVP: Next.js or Bubble (no-code)
  • Complex real-time application: React with a dedicated WebSocket setup

Backend: what to choose

The backend is where logic lives. The main options:

Node.js (TypeScript) — Express, NestJS, Fastify

Reality in 2026: the dominant platform for new projects, especially SaaS. The main advantage: the same language (JavaScript/TypeScript) for frontend and backend, which speeds up development.

When to choose it: a team that already knows JavaScript, real-time applications (chat, notifications), API-centric architecture.

Downsides: configuration can be complicated, more options means more decisions.

Laravel (PHP)

Reality: a mature, excellent framework. Fast for development, well documented, runs excellently for most B2B applications.

When to choose it: almost always a good choice for standard CRUD applications, B2B portals, e-commerce projects. Especially strong if speed of delivery matters.

Downsides: PHP has a reputation for being “old” (which is untrue) — sometimes affects perception, though not functionality.

Django (Python)

Reality: very mature, excellent for projects with lots of business logic, reports, and data manipulation. Particularly popular in scientific, educational, and AI-related projects.

When to choose it: complex databases, AI/ML integrations, projects where Python is already in use.

Ruby on Rails

Reality: still active, particularly popular among startups for its development speed. Smaller ecosystem than before, but talent available.

When to choose it: very fast launches (MVPs), teams already in the Rails ecosystem.

Go or Rust

Reality: for very specific needs. High performance, low latency, systems with hundreds of thousands of requests per second.

When to choose it: very specific high-performance requirements. For 95 % of applications — overkill.

Our recommendation by project type

  • B2B portal with CRUD operations: Laravel or Node.js
  • SaaS with real-time features: Node.js
  • AI/ML application: Django (Python) or Node.js + Python services
  • E-commerce: Laravel + WooCommerce (if smaller), or Node.js (if custom)
  • Complex enterprise system: Java (Spring Boot), .NET, or Node.js

Database: what to choose

The simplest choice in the stack, but often made wrong. Two main categories:

Relational (SQL) databases

PostgreSQL: the standard choice in 2026. Robust, open source, excellent for most cases. Supports JSON when you need flexibility.

MySQL / MariaDB: still strong, particularly for WordPress projects.

When to use it: 90 % of projects. Structured data, transactions, complex queries — SQL handles all of that excellently.

NoSQL databases

MongoDB: document-oriented, flexible schema. Popular in the Node.js ecosystem.

DynamoDB: AWS’s NoSQL, excellent for AWS-based projects needing massive scalability.

Redis: in-memory, fast, used mostly for caching and sessions.

When to use it: specific needs — unstructured data storage, real-time applications, special needs for write scalability.

Our recommendation

For 95 % of projects: PostgreSQL. Robust, flexible (with JSON support for unstructured data), excellent support, talent widely available. Most “database scaling” problems are solved with better indexes and queries, not by switching to NoSQL.

Use NoSQL only when you have a clear reason: unstructured data, real-time chat at high volume, special write-scale requirements.

Hosting and infrastructure: what to choose

This is where money is most often lost on bad decisions. The main options:

PaaS (Platform as a Service)

Vercel: dominant for Next.js applications. Simple, fast, scales automatically. Expensive at high traffic.

Netlify: similar to Vercel, excellent for static sites and Jamstack projects.

Heroku: older but still active. Simple for small to medium applications.

Railway, Render, Fly.io: newer PaaS options, cheaper than Heroku, simpler than AWS.

When to choose it: small to medium projects, teams that don’t want DevOps, fast launches.

IaaS (Infrastructure as a Service)

AWS, Azure, GCP: the largest platforms. Practically unlimited flexibility, but high complexity and potentially high costs.

DigitalOcean, Hetzner, Linode: simpler and cheaper. Hetzner is particularly popular in Europe due to dramatically lower prices.

When to choose it: serious projects with specific requirements, teams with DevOps capacity.

Specific recommendations

  • Small application (up to 1,000 users): Vercel or Hetzner Cloud ($6 – $35/mo)
  • Medium application (up to 50,000 users): Hetzner or DigitalOcean ($60 – $250/mo)
  • Large application (over 100,000 users): AWS, Azure, or custom setup on Hetzner
  • Static marketing site: Cloudflare Pages, Vercel, or Netlify (free up to a certain limit)

The biggest mistake: jumping to AWS too early. A small application on AWS with a poor configuration can cost $700/mo instead of $35/mo on Hetzner — for the same functionality.

Side services that are still essential

The stack isn’t complete without:

Email provider: SendGrid, Postmark, Mailgun, Resend. $12 – $250/mo.

Payments: Stripe (the safest global choice), Adyen (strong for Europe), PayPal (a complement, not primary).

File storage: Cloudflare R2, AWS S3, Backblaze B2. Cloudflare R2 is cheapest because it doesn’t charge egress.

CDN: Cloudflare (the best combination of free tier and paid options), BunnyCDN (cheaper alternative).

Error tracking: Sentry (industry standard).

Analytics: Plausible (privacy-friendly), Mixpanel (product-oriented), Google Analytics 4 (free).

Authentication: Auth0, Clerk, or self-built. Clerk and Auth0 give you a ready system for $35 – $120/mo.

How a real stack choice looks in practice

A good technical stack conversation lasts 30 to 60 minutes and runs through:

  1. What are you building? (B2B portal? SaaS? E-commerce? Marketing site?)
  2. What’s the expected volume? (100 users? 10,000? 100,000?)
  3. How big is the team? (1 developer? 5? 50?)
  4. How fast do you need to launch? (4 weeks? 4 months? 12 months?)
  5. What does the team already know? (They might already use React or Laravel)
  6. What are the specific requirements? (Real-time? AI? Specific integrations?)

The stack emerges from the answers. Not the other way around. If an agency proposes “Next.js + Node.js + PostgreSQL on AWS” before they’ve asked these questions, they’re not proposing technology for your project — they’re reciting a popular stack.

Red flags in technical conversations

“We’ll use the most modern stack.” Modern isn’t the same as right. An application with 200 users doesn’t need “the most modern” stack. It needs a boring stack that works and can be maintained.

Microservices for everything. Microservices solve problems of large teams with large loads. A small team with 10,000 users almost always works better with a monolith.

Kubernetes too early. Kubernetes is valuable for systems with dozens of servers requiring complex orchestration. A web application that can be hosted on 1 or 2 servers doesn’t need Kubernetes — it needs PaaS.

“It sounds interesting, let’s try it.” A stack isn’t an experiment. It’s 5+ years of code you’ll have to maintain. Choose mature technologies that work and where talent exists.

A realistic stack example for a standard B2B application

For a standard B2B web application (up to 5,000 users, mid-range budget):

  • Frontend: Next.js (React) with TypeScript
  • Backend: Node.js (NestJS or Express) or Laravel — depending on the team
  • Database: PostgreSQL on a managed provider
  • Caching: Redis (managed, e.g. Upstash)
  • Hosting: Vercel for frontend, Hetzner for backend, or Railway for both
  • CDN: Cloudflare
  • Email: Postmark or Resend
  • Payments: Stripe
  • Auth: Clerk or self-built (NextAuth)
  • Storage: Cloudflare R2
  • Analytics: Plausible
  • Error tracking: Sentry
  • Monitoring: built-in from the provider + Sentry

Total monthly cost: $180 – $600 depending on load.

This stack covers 90 % of B2B SaaS projects in 2026 — not because it’s glamorous, but because it’s mature, well tested, and works.

The bottom line

Technology choice doesn’t have to be dramatic. There are proven combinations that work for most projects: Next.js + Node.js (or Laravel) + PostgreSQL + Cloudflare solves 90 % of B2B web applications in 2026.

The biggest mistakes: choosing by trend, starting with microservices and Kubernetes before you justify them, using AWS just because it’s AWS, switching to new technologies without reason.

The smartest approach: choose boring technologies your team knows or can easily learn, with mature ecosystems and widely available talent. Choose technology that fits your problem, not the one that sounds impressive at a conference.

The stack doesn’t determine the product’s success. Product decisions and execution do. The best technology in the hands of a bad team produces a worse outcome than proven technology in the hands of a good one.


Considering technology choices for your project? We can walk through the specific needs of your project and propose a stack that fits — not the most modern, but the most appropriate. Get in touch. More about our approach on the Web Application Development page.