Full stack
What Is a Full Stack?
A full stack, also called a software stack or a solution stack, is the complete set of software components required to run an application end to end, from the operating system and runtime through the data store and server-side logic to the interface a user actually touches. The defining property is closure: once the stack is assembled, no further software is needed to support the application. In software engineering the term is used in two senses, one describing the composition of a deployed system and one describing the breadth of a practitioner's competence across that composition.
Stacks are named by convention rather than by standard, and a name is shorthand for a set of interface choices. LAMP, combining Linux, the Apache HTTP server, MySQL, and a scripting language, established the pattern in the late 1990s. Later combinations such as MEAN and MERN substituted a document database and a JavaScript runtime on the server so that one language spans both tiers, and JAMstack arrangements push rendering to build time and delegate dynamic behavior to separate services.
Layers and Interfaces
A conventional stack is described bottom-up. Physical or virtualized compute, storage, and network resources form the base, and the NIST Cloud Computing Reference Architecture formalizes this as a physical resource layer beneath a resource abstraction and control layer containing hypervisors and virtual machine management. Above that sit the operating system, the language runtime and its package ecosystem, the persistence tier, the application server or framework, and the presentation tier. Cross-cutting components including caches, message brokers, reverse proxies, authentication services, and observability agents attach at several layers at once.
What holds the arrangement together is the contract between layers rather than the components themselves. On the web tier the contract is largely the HTTP semantics standardized in RFC 9110, which is why a browser client and a server written in unrelated languages interoperate. Below that, driver protocols, socket interfaces, and system calls play the same role. Stable interfaces are what make components substitutable, and substitutability is the practical reason to reason about a system as a stack at all.
Cloud Service Models as Stack Boundaries
Cloud service models are best understood as places to cut the stack and assign responsibility. The NIST definition of cloud computing distinguishes infrastructure as a service, where the consumer manages everything from the operating system upward, platform as a service, where the provider supplies the runtime and the consumer supplies application code and configuration, and software as a service, where the provider operates the entire stack. Containers and serverless functions add further cut points, moving the boundary to an image specification or to a single invocation. Each choice trades operational control against operational burden, and it fixes which layers a team must staff for.
The Full-Stack Developer Role
Applied to people, the term describes an engineer who can work at every tier of a system: designing a schema, writing server-side logic, building the client interface, and configuring the deployment path. The role emerged with web startups, where small teams could not afford a specialist per layer, and it remains one of the most commonly reported job descriptions in the annual Stack Overflow Developer Survey. Depth is the recognized limitation, since expertise in database tuning, distributed systems, accessibility, and security is difficult to sustain simultaneously, and larger organizations typically pair generalists with specialists rather than choosing between them.
Applications
Full stack architecture and skills apply in a range of settings, including:
- Web and mobile application development
- Rapid prototyping and startup product engineering
- Internal enterprise tools and line-of-business systems
- DevOps and platform engineering
- Systems integration and legacy modernization
- Computing education and bootcamp curricula