StackBeginner to intermediate

The Complete Technology Stack Decision Guide

A knowledge base for choosing frontend, backend, hosting, database, and mobile stacks from requirements, cost, risk, and product stage.

16 min readReviewed Sep 7, 2026Free public access
Table of contents

A technology stack is the complete set of technologies used to build, run, store data for, secure, and operate an application. A good choice is not the stack with the most logos. It is the simplest combination that satisfies every mandatory requirement and can still be maintained by the team.

Core principle: choose from product requirements, not trends or vendors. If the project comes from AI Blueprint, treat the Technical Foundation, Database Schema, and UI/UX Design as the primary decision sources.

1. The Outcome You Should Produce

After using this guide, you should be able to explain:

  • what is being built and who will use it;
  • which platforms must be supported: web, mobile, desktop, or a combination;
  • the frontend and rendering strategy;
  • where business logic will run;
  • the primary database and any genuinely necessary specialist services;
  • the hosting model that matches the runtime;
  • the security, backup, monitoring, and deployment baseline;
  • why the stack was chosen, the second-best alternative, its risks, and review triggers.

The final stack is not merely a list of products. It is a testable architecture decision.

2. Map the Technology Stack Layers

LayerResponsibilityExamples
FrontendInterface, interactions, accessibility, responsive statesHTML, CSS, React, Vue
RenderingWhen and where HTML is producedCSR, SSG, SSR, hybrid
BackendBusiness rules, APIs, permissions, integrationsNext.js server, NestJS, FastAPI
RuntimeExecutes source codeNode.js, Bun, Python, JVM
DatabaseStores and queries primary dataPostgreSQL, MySQL, MongoDB
Specialist dataCache, search, queue, vector, analyticsRedis, OpenSearch, pgvector, ClickHouse
StorageStores images, video, and filesS3-compatible object storage
IdentitySign-in, sessions, MFA, and account lifecycleAuth.js, Supabase Auth, managed identity
HostingRuns static assets, functions, or containersCDN, serverless, PaaS, VPS
OperationsBuild, test, deploy, log, alert, and recoverCI/CD, Sentry, uptime monitoring, backups

One framework may cover several layers. Next.js, for example, can handle both UI and server code, but the browser and server remain separate security boundaries. A secret must never reach the frontend simply because the code lives in one repository.

Engines, providers, and frameworks are different

  • PostgreSQL is a database engine; Supabase, Neon, RDS, Cloud SQL, and self-hosted PostgreSQL are ways to provide it.
  • React is a UI library; Next.js is a framework with routing and server capabilities.
  • Docker is a container platform, not a language, database, or hosting provider.
  • Node.js is a runtime; npm, pnpm, and Yarn are package managers.

Using the correct terms makes diagnosis and migration much easier.

3. Start with a Decision Brief

Do not select a provider until the following questions have answers.

Product and team

QuestionUseful example answers
Product typeLanding page, SaaS, marketplace, internal tool, game, AI app
StagePrototype, MVP, early production, growth, enterprise
Target platformsResponsive web, PWA, Android/iOS, native
TeamSolo, small team, platform team; beginner or advanced
Time to releaseDays, weeks, or quarters
BudgetVery low, low, medium, high

Traffic and user experience

  • How important are SEO and first-page speed?
  • Are most pages public or behind authentication?
  • Is the experience application-like, real-time, offline, or media-heavy?
  • From which regions will users access it?
  • Is traffic steady, seasonal, viral, or still unknown?

Data and operations

  • Does the data have complex relationships or cross-table transactions?
  • Does the product need payments, audit logs, uploads, search, or geospatial queries?
  • Is strong consistency mandatory, or is eventual consistency acceptable?
  • What are the maximum acceptable data loss (RPO) and recovery time (RTO)?
  • Are there data residency, compliance, private networking, or encryption requirements?
  • Who owns deployment, monitoring, backups, and incident recovery?

If an answer is not yet known, record unknown and prefer a reversible solution. Do not turn uncertainty into unnecessary architecture.

4. Apply Hard Gates before Scoring

Hard gates

Eliminate a candidate that fails a mandatory requirement, even if it is popular or inexpensive. Examples include:

  • the required runtime or protocol is unavailable;
  • the required region is unavailable;
  • mandatory transactions, backups, restore, or WebSockets are unsupported;
  • production readiness, licensing, compliance, or data residency is unsuitable;
  • minimum cost already exceeds the budget;
  • the database would need privileged browser access without a safe authorization model.

Score only candidates that pass

Give each candidate a 0-5 score. Adjust these starting weights as needed:

DimensionStarting weight
Functional fit20%
Data and query fit15%
Runtime compatibility12%
Performance and scalability12%
Reliability and recovery10%
Security and compliance8%
Developer experience8%
Operational burden6%
Cost predictability5%
Portability and lock-in4%

For a solo founder, increase time-to-market and operational-burden weights. For enterprise systems, increase reliability, security, compliance, and portability. Apply penalties for beta technology, distant database regions, core workarounds, or a mismatch with team skills.

5. Match Complexity to the Product Stage

StageGoalReasonable stack shapeDo not rush to add
ValidationProve the problem and user interestStatic site or mock-data prototypeDatabase, microservices, Kubernetes
MVPRun the core workflow safelyOne full-stack app + managed SQL/BaaSMultiple databases and an event bus
Early productionBecome reliable for real usersAuth, backups, monitoring, migrations, stagingOptimisation without evidence
GrowthResolve measured bottlenecksWorkers, queues, cache, object storage, searchSplitting every service
ScaleSupport reliability, compliance, and organisationMeasured service boundaries, HA, mature observabilityComplexity without an owner

Move up a stage because of evidence: queues are blocking requests, queries are slow, storage is growing, recovery requirements changed, or organisational ownership requires a boundary. Do not move up because a larger architecture looks more professional.

6. Choose the Frontend and Rendering Strategy

Choose rendering first

StrategyChoose it whenMain trade-off
SSG / prerenderingPublic content changes infrequently and SEO mattersVery fast; updates need a build or revalidation
CSR / SPAAuthenticated dashboards have high interaction and low SEO needsStraightforward app-like UI; first load depends more on JavaScript
SSRContent must be fresh or personalised per requestFlexible; requires a server runtime and disciplined caching
HybridOne product contains marketing pages, an app, and dynamic dataFits many web apps; adds a richer mental model
PWAThe web experience needs installability, caching, or limited offline useLower cost before native; device capability remains limited
Edge renderingGlobal low-latency personalisation is requiredVerify runtime, package, database, and observability constraints

Choose a framework from product characteristics

ChoiceStrengthGood fit
HTML/CSS/JSSmall footprint and little abstractionSimple microsites and landing pages
React + ViteFlexible SPA with mature toolingClient-heavy dashboards and prototypes
Next.jsHybrid rendering, routing, and server capabilitiesSaaS, ecommerce, content + app
Vue + NuxtVue developer experience with complete renderingVue teams and hybrid web apps
SvelteKitConcise components and full-stack webSmall teams that know its ecosystem
AstroContent-first with selective JavaScriptBlogs, documentation, marketing sites
AngularStrong structure and conventionsEnterprise teams and large applications

TypeScript generally improves data contracts and refactoring. Component libraries such as shadcn/ui, Material UI, or an internal library speed up accessibility and consistency, but you still need design tokens, responsive behavior, empty/error/loading states, and visual QA.

Frontend records for the knowledge base

Do not store only a framework name. A minimum record needs:

FieldWhy it matters
Runtime and versionDetermines compatibility, security support, and build commands
Rendering modesConfirms SSG, CSR, SSR, streaming, or edge support
Deployment adaptersConnects the framework to its hosting target
Browser baselineDefines web capabilities, polyfills, and the test matrix
UI component strategySeparates a component library, design system, and custom components
Data fetching and cachePrevents conflicting cache policies
Auth boundaryExplains what runs in the browser and on the server
LifecycleStable, preview, deprecated, or end-of-life
Verification date and sourceMakes stale information detectable

For every major upgrade, run the build, route smoke tests, server/client boundary checks, and screenshot regression on important screens.

7. Choose a Web and Mobile Strategy

NeedStarting pathMove up when
Responsive webWeb framework + responsive layoutStay on web when device features are minimal
Installable/light offlinePWAStore distribution or device APIs become important
Wrapped web appCapacitorUX and background capabilities become limiting
Android + iOS from one codebaseReact Native + Expo or FlutterNative modules or performance require specialisation
Android-onlyKotlin + Jetpack ComposeAndroid or hardware integration is the real target
iOS-onlySwift + SwiftUIApple ecosystem integration differentiates the product

React Native + Expo is a strong fit for teams experienced with TypeScript and React. Flutter provides cross-platform UI control with Dart. Native development offers the deepest device access and performance, but requires more skills, testing, and release work across two platforms.

Real-time games, graphics-heavy experiences, AR/VR, intensive audio, and physics simulation need a specialised path such as Unity, Unreal, Godot, or a native graphics stack. Do not force a business web framework to behave like a game engine.

8. Select the Backend and Hosting Model Together

Backend shapes

ShapeGood fitWatch for
No backendMarketing site or local-only prototypeNever store sensitive data in the browser
BaaSMVP with auth, database, storage, and real-time featuresUnderstand RLS, limits, and the exit plan
Full-stack frameworkSmall-to-medium product owned by one teamPreserve module and server/client boundaries
Separate API serviceMultiple clients or complex domain logicAdds deployment, contracts, and observability
Worker/background jobsEmail, import/export, media, AI, reportsNeeds queues, retries, idempotency, and dead-letter handling

Hosting models

HostingGood fitConstraints to verify
Static hosting + CDNSSG, SPA, public assetsNo persistent server process
Serverless functionsShort APIs and uneven trafficTimeout, cold start, connection pooling
Edge functions/workersLightweight requests close to usersRuntime APIs, CPU, packages, database connections
Container PaaSFull-stack servers, workers, WebSocketsResources, health checks, scaling, persistent volumes
VPS + DockerControl and predictable base costYou own patching, firewall, backup, deployment, monitoring
Managed KubernetesMany services and a mature platform teamHigh operational burden; not an MVP default

The framework and hosting model must be compatible. A static export cannot run server actions. Edge workers are not compatible with every Node.js package. Serverless workloads that open many PostgreSQL connections need pooling. A container storing uploads locally needs persistent volumes or object storage.

Hosting provider evaluation matrix

DimensionVerification question
RuntimeAre Node/Python/JVM, containers, native binaries, and background workers supported?
Request modelWhat are the timeout, concurrency, cold start, memory, CPU, and payload limits?
NetworkAre WebSockets, private networking, static IP, custom ports, and egress policies available?
StorageIs the filesystem ephemeral, and are persistent volumes, object storage, and backups available?
RegionCan the app and database stay close to users and meet residency requirements?
DeploymentAre preview, health checks, zero-downtime rollout, migration hooks, and rollback supported?
ObservabilityAre logs, metrics, traces, alerts, and retention sufficient for incident response?
SecurityHow are secrets, TLS, WAF, DDoS, access control, and audits handled?
CostWhich compute, bandwidth, build, log, volume, IPv4, and support units are billed?
Exit pathCan images, data, DNS, and secrets move without severe downtime?

With Coolify or a VPS, the team owns OS patches, disk capacity, backups, firewalls, certificates, log rotation, monitoring, and recovery. A convenient deployment UI does not remove server responsibilities.

9. Choose a Database from the Data Shape

Primary database categories

TypeChoose it whenExamples
Relational SQLRelationships, transactions, reporting, and integrity matterPostgreSQL, MySQL
DocumentDocument shapes vary and aggregates are read as a unitMongoDB
Key-value / in-memoryCache, rate limiting, sessions, queuesRedis
GraphRelationship traversal is the core queryNeo4j
Time-seriesTime-based events and specialised retention dominateTimescale, InfluxDB
Columnar analyticsLarge aggregations, not application transactionsClickHouse, warehouses
Search engineComplex full-text ranking and typo toleranceOpenSearch, Meilisearch, Typesense
VectorSemantic search or AI retrievalpgvector, Qdrant

PostgreSQL is a strong default for many business applications because it supports transactions, relationships, constraints, queries, JSON, full-text search, and extensions. A default is still not a universal answer.

Add specialist databases only for specialist jobs

A healthy architecture may use:

  • PostgreSQL as the transactional source of truth;
  • Redis for cache, rate limits, sessions, or queues;
  • object storage for large files;
  • a search engine for complex search;
  • pgvector or a vector database for semantic retrieval;
  • a warehouse or columnar database for heavy analytics.

Do not use a cache as the source of truth or an analytics database as the primary OLTP store. Define ownership, synchronisation, retries, and recovery for every copy of data.

Managed or self-hosted

Compare backups, point-in-time recovery, pooling, branching, replicas, regions, encryption, observability, support, and data-egress costs. Managed services reduce operational work; self-hosting gives control while moving patching and recovery responsibility to your team.

Database provider evaluation matrix

DimensionData to record
Engine/versionEngine, extensions, collation, timezone, and upgrade schedule
ConnectionDirect, pooler, private link, TLS, connection limit, and driver
DurabilityBackup frequency, retention, PITR, replicas, RPO, and RTO
ScaleVertical limits, read replicas, sharding path, storage growth, and resize downtime
SecurityEncryption, network controls, roles, audit, secret rotation, and compliance
OperationsMetrics, slow queries, maintenance windows, support, and incident status
PortabilityStandard dump/restore, extension dependency, egress, and lock-in
CostCompute, storage, IOPS, backup, replicas, transfer, and minimum monthly charge

Before production, prove connectivity from the target runtime, run migrations in staging, restore into a separate instance, and measure critical queries with realistic data volume.

Knowledge-base record schema

yaml
technology_id: postgresql-managed-example
category: primary_database
lifecycle: active
capabilities:
  transactions: true
  point_in_time_recovery: true
  connection_pooling: verify_plan
constraints:
  - region availability depends on provider
  - extensions depend on plan and engine version
cost_model:
  units: [compute, storage, backup, transfer]
verified_at: 2026-09-07
official_sources:
  - provider documentation URL
review_triggers:
  - engine major version changes
  - pricing or plan limits change
  - RPO or data residency requirement changes

The JSON snapshot shown after this article is an educational catalog. The Blueprint catalog under config/knowledge/technology remains the generation authority because it carries versions, hashes, approved/proposed status, and compatibility rules.

10. Stack Patterns by Use Case

Use caseReasonable baselineAdd only when evidence requires it
Landing/blog/docsAstro or Next.js SSG + CDNCMS, search, form service
Browser utilityVite/React or a light framework; local processingWorker/API only for operations unsafe in the browser
SaaS MVPNext.js + TypeScript + managed PostgreSQL/Auth/StorageWorker, Redis, search, billing service
Marketplace/ecommerceHybrid web + PostgreSQL + payment webhooks + object storageQueue, fraud review, search, ledger, reconciliation
Social/communityWeb/mobile client + API/BaaS + PostgreSQLReal-time, moderation, feed worker, media pipeline
Internal appSPA/full-stack + SSO + relational databaseAudit log, approvals, reporting, private network
AI/RAG appFull-stack/API + PostgreSQL + object storageQueue, pgvector/vector DB, tracing, model fallback
Analytics dashboardWeb app + transactional sourceETL and a warehouse when analytics harms OLTP
Mobile-firstExpo/React Native or Flutter + managed backendOffline sync, push notifications, native modules
GameGame engine + game backend matched to the session modelMatchmaking, authoritative server, telemetry, anti-cheat

A baseline is a starting point, not a template to copy without analysis. Financial payments, healthcare, government systems, and children's data require specialist security and compliance review.

11. Calculate Total Cost of Ownership

Do not compare only the entry plan price. Include:

  • compute and function invocations;
  • database compute, storage, backups, replicas, and connection pooling;
  • object storage and bandwidth/egress;
  • logs, tracing, error monitoring, and retention;
  • email, SMS, payment fees, search, AI tokens, and third-party APIs;
  • engineering time for patching, deployment, incidents, and recovery;
  • migration cost and vendor lock-in.

Provider prices change. Store the billing model, units, cost band (very_low through enterprise), spike risk, verification date, and official pricing URL. Do not hardcode rapidly expiring prices into architecture decisions.

12. Security and Reliability Minimums

Security

  • Keep secrets only in server-side environments or a secret manager.
  • Check authorization on the server for every resource; hiding a button is not security.
  • Apply least privilege, admin MFA, rate limits, input validation, and audit logs for sensitive actions.
  • Enable HTTPS, security headers, dependency scanning, and upload validation.
  • If a client uses a managed data API, enable and test row-level access policies.

Reliability

  • Pair backups with restore drills; an untested backup is not proven.
  • Version and review migrations, with a forward-fix or rollback plan.
  • Use health checks, structured logs, error monitoring, uptime alerts, and correlation IDs.
  • Make jobs idempotent, limit retries, and prevent duplicate charges or messages.
  • Separate local, preview, staging, and production databases and secrets.

13. A Practical Decision Tree

text
Start
├─ Only public content and a simple form?
│  └─ Yes → static/SSG + CDN; a database may not be needed
├─ Web app with authentication and business transactions?
│  └─ Yes → full-stack app + relational database + server-side authorization
├─ Is mobile the primary experience?
│  ├─ Need speed, one JS/TS team → React Native + Expo
│  ├─ Highly custom cross-platform UI → evaluate Flutter
│  └─ Extreme device integration/performance → native
├─ Is a process long-running or retryable?
│  └─ Yes → queue + worker + idempotency
├─ Has search/analytics/vector become a specialist workload?
│  └─ Yes → add a specialist store; preserve the source of truth
└─ Are there many services and a platform team?
   └─ Only then evaluate more complex orchestration

14. Record the Decision as a Contract

Use this format for every project:

yaml
product_stage: mvp
target_platforms: [responsive_web]

recommended_stack:
  frontend: Next.js + TypeScript
  rendering: hybrid
  backend: Next.js server modules
  primary_database: PostgreSQL
  hosting_runtime: container_paas

rationale:
  - supports public pages and an authenticated area
  - one codebase matches a small team's capacity
  - transactions and relationships require SQL

hard_gates_passed:
  - target region is available
  - backup and restore satisfy requirements
  - runtime supports a background worker

alternatives:
  - option: Nuxt + PostgreSQL
    trade_off: strong for a Vue team, but current team skills do not match

risks:
  - database connections require pooling
  - email and AI processing need queues before traffic grows

review_triggers:
  - p95 latency exceeds the target for 14 days
  - background jobs begin blocking web requests
  - data-residency requirements change

This contract helps a coding agent understand reasons and constraints instead of simply copying technology names.

15. Anti-patterns to Avoid

  • Choosing a stack because it is viral or familiar to the coding agent.
  • Adding microservices, Kubernetes, Redis, or a vector database on day one without a requirement.
  • Using production data in local or preview environments.
  • Creating a second lockfile or changing the package manager without an explicit decision.
  • Accessing the database from the browser with privileged credentials.
  • Storing user uploads on an ephemeral container filesystem.
  • Running long work synchronously without timeout and retry design.
  • Treating a free tier as guaranteed production capacity.
  • Choosing a provider without region, backup, exit plan, and TCO analysis.
  • Replacing Blueprint foundations without updating requirements, schema, and acceptance criteria.

16. Approval Checklist

  • Product type, stage, platforms, users, and core workflow are documented.
  • Mandatory requirements are separated from preferences.
  • Every candidate passes runtime, region, security, and budget hard gates.
  • Rendering is chosen from SEO, freshness, and personalisation needs.
  • The database engine is selected before the database provider.
  • Hosting matches runtime, connection model, workers, and storage.
  • Auth, authorization, audit, secrets, backups, and restore are designed.
  • Cost estimates include egress, observability, backups, and team operations.
  • The second-best option, risks, exit plan, and review triggers are documented.
  • The team can run, test, deploy, and recover the stack.
  • AI Blueprint Technical Foundation and Database Schema remain consistent.

Technology stack reference database

Educational snapshot verified Sep 7, 2026. The approved Technical Foundation remains the project decision source.

Frontend5

  • Next.jsfull-stack web framework
  • React with Viteclient application stack
  • NuxtVue full-stack web framework
  • SvelteKitfull-stack web framework
  • Astrocontent-first web framework

Hosting models5

  • Static hosting with CDNstatic generation / SPA assets
  • Serverless functionsshort request-driven APIs / uneven traffic
  • Container PaaSfull-stack server / worker
  • VPS with Dockerpredictable base cost / custom networking
  • Managed Kubernetesmany services / mature platform team

Database5

  • PostgreSQLrelational SQL
  • MySQLrelational SQL
  • MongoDBdocument database
  • Redisin-memory key-value data store
  • Specialist data storessearch, vector, graph, time-series, or columnar

Official sources and references

Use these sources to confirm current commands, capabilities, prices, and limits.

Was this guide helpful?

Tell us whether the steps worked or if something needs an update.

The Complete Technology Stack Decision Guide | AI Blueprint Learning