{{short description|Set of software subsystems or components needed to create a complete platform}} {{Redirect|Software stack||Stack (disambiguation)#Computing{{!}}Stack § Computing}}

In computing, a '''solution stack,''' also called '''software stack''' and '''tech stack''' is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications.<ref name="CDESolution15">{{cite encyclopedia |url=https://encyclopedia2.thefreedictionary.com/Solution+stack |title=Solution stack |encyclopedia=Computer Desktop Encyclopedia |publisher=The Computer Language Company |year=2015 |access-date=5 July 2018}}</ref> Applications are said to “run on” or “run on top of” the resulting platform.

For example, to develop a web application, the architect defines the stack as the target operating system, web server, database, and programming language. Another version of a software stack is operating system, middleware, database, and applications.<ref>{{cite news|url=http://searchenterpriselinux.techtarget.com/news/interview/0,289202,sid39_gci880604,00.html|title=Red Hat: Linux served at vertical data center dinner tables|last=Mimoso|first=Michael S.|date=24 February 2003|work=SearchEnterpriseLinux.com|access-date=2009-08-09}}</ref> Regularly, the components of a software stack are developed by different developers independently of one another.

Some components/subsystems of an overall system are chosen together often enough that the particular set is referred to by a name representing the whole, rather than by naming the parts. Typically, the name is an acronym representing the individual components.<ref name="BealAcronym07">{{cite web |url=https://www.webopedia.com/quick_ref/webstack_acronyms.asp |title=Acronym Guide to Web Stacks |author=Beal, V. |work=Webopedia |publisher=Quinstreet, Inc |date=7 September 2007 |access-date=5 July 2018}}</ref>

The term “solution stack” has, historically, occasionally included hardware components as part of a final product, mixing both the hardware and software in layers of support.<ref name="FergusonSpecial02">{{cite book |url=https://books.google.com/books?id=d4n0ZGQYQL8C&pg=PA616 |title=Using Microsoft SharePoint Portal Server |author=Ferguson, R. |publisher=Que Publishing |page=616 |year=2002 |isbn=9780789725707}}</ref><ref name="AndersonSAP03">{{cite book |title=SAP Planning: Best Practices in Implementation |author=Anderson, G.W. |publisher=Sams |page=13 |year=2003 |isbn=9780789728753}}</ref>

A '''full-stack developer''' is expected to be able to work in all the layers of the application (front-end and back-end). A full-stack developer can be defined as a developer or an engineer who works with both the front and back end development of a website, web application or desktop application.<ref>{{Cite web |last=Amir |first=Masroor |title=Full Stack Developer - Complete Roadmap {{!}} Technologies in 2023 |url=https://www.thegeeksbot.com/2023/03/full-stack-developer-complete-roadmap.html |access-date=2023-04-27 |website=The Geeks Bot {{!}} A Computer Science Site for geeks |language=en}}</ref> This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects.

== JavaScript stacks == {{Main|JavaScript stack}} A JavaScript stack is a collection of technologies that use JavaScript as a primary programming language across the entire software development process, typically combining front-end and back-end tools to build full-scale web applications. With the rise of Node.js, JavaScript can now be executed server-side, allowing developers to use a single language for both client and server development. This unification simplifies the development workflow, improves code reuse, and enhances productivity by enabling consistent logic and tooling across the application. JavaScript stacks are often favored for their speed, scalability, and access to a vast ecosystem of libraries and frameworks available through platforms like npm. The increasing popularity of these stacks reflects a broader shift toward full-stack JavaScript development in modern web engineering.<ref>Tilkov, Stefan, and Steve Vinoski. "Node.js: Using JavaScript to Build High-Performance Network Programs." ''IEEE Internet Computing'', vol. 14, no. 6, 2010, pp. 80–83. DOI: 10.1109/MIC.2010.145</ref><ref>Pimentel, Jon. ''Full-Stack React Projects''. Packt Publishing, 2018.</ref><ref>{{Cite web |title=Node.js — About Node.js® |url=https://nodejs.org/en/about |access-date=2025-06-18 |website=nodejs.org |language=en-GB}}</ref><ref>{{Citation |last=bin Uzayr |first=Sufyan |title=JavaScript for Mobile Usage |date=2023-08-09 |work=Conquering JavaScript |pages=371–402 |url=https://doi.org/10.1201/9781003356578-7 |access-date=2025-06-18 |place=Boca Raton |publisher=CRC Press |doi=10.1201/9781003356578-7 |isbn=978-1-003-35657-8|url-access=subscription }}</ref>

=== OS-level stacks ===

;MLVN<ref>{{cite book |author=Sharma, A. |title=Full-Stack Web Development with Vue.js and Node |publisher=Packt Publishing Ltd |year=2018 |isbn=9781788830775 |pages=6–30 |chapter=Chapter 2: Introducing MEVN |chapter-url=https://books.google.com/books?id=3EBbDwAAQBAJ&pg=PA6}}</ref> : MongoDB (database) : Linux (operating system) : Varnish (software) (frontend cache) : Node.js (JavaScript runtime) ;WISAV/WIPAV : Windows Server (operating system) : Internet Information Services (web server) : Microsoft SQL Server/PostgreSQL (database) : ASP.NET (backend web framework) : Vue.js (frontend web framework)

=== OS-agnostic web stacks ===

;GRANDstack<ref name="GrandStack">{{cite web |title=GRANDStack |url=https://grandstack.io/ |access-date=24 Dec 2019}}</ref> : GraphQL (data query and manipulation language) : React (web application presentation) : Apollo (Data Graph Platform) : Neo4j (database management systems)

;JAMstack<ref name="Jamstack">{{cite web |title=JAMstack |url=https://jamstack.org/ |access-date=5 July 2018}}</ref> : JavaScript (programming language) : APIs (Application programming interfaces) : Markup (content)

;MEAN<ref name="FramptonComplete18" /> : MongoDB (database) : Express.js (application controller layer) : AngularJS/Angular (web application presentation) : Node.js (JavaScript runtime)

; MERN<ref name="WilsonMERN18">{{cite book |author=Wilson, E. |title=MERN Quick Start Guide |publisher=Packt Publishing Ltd |year=2018 |isbn=9781787280045 |pages=7–13 |chapter=Chapter 1: Introduction to the MERN Stack |chapter-url=https://books.google.com/books?id=HnxeDwAAQBAJ&pg=PA7}}</ref> : MongoDB (database) : Express.js (application controller layer) : React.js (web application presentation) : Node.js (JavaScript runtime)

; MEVN<ref>{{cite book |author=Sharma, A. |title=Full-Stack Web Development with Vue.js and Node |publisher=Packt Publishing Ltd |year=2018 |isbn=9781788830775 |pages=6–30 |chapter=Chapter 1: Introducing MEVN |chapter-url=https://books.google.com/books?id=3EBbDwAAQBAJ&pg=PA6}}</ref> : MongoDB (database) : Express.js (application controller layer) : Vue.js (web application presentation) : Node.js (JavaScript runtime)

;PERN<ref>{{Cite web |date=2020-03-20 |title=Learn the PERN Stack by building a web app - Full video course |url=https://www.freecodecamp.org/news/learn-the-pern-stack-full-course/ |access-date=2021-06-19 |website=freeCodeCamp.org |language=en}}</ref> : PostgreSQL (database) : Express.js (application controller layer) : React (JavaScript library) (web application presentation) : Node.js (JavaScript runtime)

;T-REx<ref>{{Cite web |title=TerminusDB on Twitter |url=https://twitter.com/terminusdb/status/1313507776224690178 |access-date=2020-10-14 |website=Twitter |language=en}}</ref> : TerminusDB (scalable graph database) : React (JavaScript web framework) : Express.js (framework for Node.js)

== Specific framework stacks ==

=== Java-Spring stack === The Java-Spring stack is a robust and enterprise-grade technology stack built around the Java programming language and the Spring ecosystem. At its core is the Spring Framework, which provides a comprehensive programming and configuration model for modern Java applications. This stack often includes Spring Boot, a project that simplifies Spring application setup with convention-over-configuration, embedded servers, and production-ready defaults. Additional components such as Spring MVC, Spring Data, and Spring Security are commonly used for building web applications, accessing databases, and implementing authentication and authorization. The Java-Spring stack is frequently paired with relational databases like MySQL or PostgreSQL and typically deployed using servlet containers like Apache Tomcat or platforms such as Spring Cloud for microservices architecture. Known for its scalability, modularity, and long-term stability, the Java-Spring stack is widely adopted in enterprise environments, particularly in finance, telecommunications, and large-scale SaaS platforms.<ref>Walls, Craig. ''Spring in Action''. Manning Publications, 2022.</ref><ref>{{Citation |last1=Deinum |first1=Marten |title=Spring Framework Fundamentals |date=2021 |work=Pro Spring MVC with WebFlux |pages=21–54 |url=https://doi.org/10.1007/978-1-4842-5666-4_2 |access-date=2025-06-18 |place=Berkeley, CA |publisher=Apress |isbn=978-1-4842-5665-7 |last2=Cosmina |first2=Iuliana |doi=10.1007/978-1-4842-5666-4_2 |url-access=subscription }}</ref><ref>{{Citation |last=Gutierrez |first=Felipe |title=Spring with Spring Boot |date=2016 |work=Pro Spring Boot |pages=89–105 |url=https://doi.org/10.1007/978-1-4842-1431-2_5 |access-date=2025-06-18 |place=Berkeley, CA |publisher=Apress |doi=10.1007/978-1-4842-1431-2_5 |isbn=978-1-4842-1432-9|url-access=subscription }}</ref>

=== Python-Django stack === The Python-Django stack utilizes Python as the primary programming language and Django as the web framework. Django is designed to encourage clean, pragmatic design and follows the ''DRY'' (Don't Repeat Yourself) principle. It includes a wide array of built-in features, such as user authentication, an admin interface, form handling, and a powerful ORM. These built-in tools make Django especially effective for content-driven or database-heavy web applications. The stack often pairs Django with PostgreSQL or SQLite as a database and runs on web servers like Gunicorn behind Nginx. Because of Python's readability and Django's comprehensive documentation, this stack is widely used in educational platforms, scientific applications, and content management systems.<ref>Holovaty, Adrian, and Jacob Kaplan-Moss. ''The Django Book''. Version 2.0.</ref><ref>{{Cite web |title=Django |url=https://www.djangoproject.com/ |access-date=2025-06-18 |website=Django Project |language=en}}</ref>

=== Ruby on Rails stack === The Ruby on Rails stack is built around the Ruby programming language and the Rails web framework. It emphasizes the principle of ''convention over configuration'', which allows developers to build applications quickly by reducing the need for boilerplate code and manual setup. Ruby on Rails comes with an integrated set of tools, such as an object-relational mapping (ORM) system, scaffolding for code generation, and a structured directory layout, making it well-suited for rapid application development. Its focus on simplicity and developer happiness has made it a popular choice among startups and small teams. The stack typically includes a PostgreSQL or MySQL database, a web server like Puma or Nginx, and deployment tools such as Capistrano or Heroku.<ref>{{Cite journal |last=Hinze |first=Annika |date=July 2008 |title=Review of "RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series) by Michael Hartl, Aurelius Prochazka", Addison-Wesley Professional, 2007, $44.99, ISBN 0321480791 |url=https://doi.org/10.1145/1413254.1413266 |journal=ACM Queue |volume=6 |issue=4 |pages=53 |doi=10.1145/1413254.1413266 |issn=1542-7730}}</ref><ref>{{Cite web |title=Ruby on Rails Guides |url=https://guides.rubyonrails.org/ |access-date=2025-06-18 |website=Ruby on Rails Guides |language=en}}</ref>

== Other stacks == === OS-level stacks === ; BCHS<ref name="DzonsonsBCHS">{{cite web |url=http://www.learnbchs.org/ |title=BCHS Stack |author=Dzonsons, K. |access-date=5 July 2018}}</ref> : OpenBSD (operating system) : C (programming language) : httpd (web server) : SQLite (database)

; Ganeti<ref name="GanetiInstall">{{cite web |url=http://docs.ganeti.org/ganeti/master/html/install.html |title=Ganeti installation tutorial |work=Ganeti Documentation |publisher=Google, Inc |access-date=5 July 2018}}</ref> : Xen or KVM (hypervisor) : Linux with LVM (mass-storage device management) : Distributed Replicated Block Device (storage replication) : Ganeti (virtual machine cluster management tool) : Ganeti Web Manager (web interface)

; GLASS<ref name="GlynnABegin15">{{cite web |url=https://kalountos.wordpress.com/2015/06/03/a-beginners-guide-to-installing-and-configuring-glass-gemstone-64s-smalltalk-seaside-application-server-object-database-server-environment/ |title=A Beginners' Guide to Installing and Configuring GLASS: Gemstone 64/S Smalltalk / Seaside / Application Server / Object Database Server Environment |author=Glynn, A. |work=Horizons of Identity |date=3 June 2015 |access-date=5 July 2018}}</ref> : GemStone (database and application server) : Linux (operating system) : Apache (web server) : Smalltalk (programming language) : Seaside (web framework)

; LAMP<ref name="FramptonComplete18">{{cite book |url=https://books.google.com/books?id=Y8FHDwAAQBAJ&pg=PA7 |title=Complete Guide to Open Source Big Data Stack |author=Frampton, M. |publisher=Apress |page=7 |year=2018 |isbn=9781484221495}}</ref> : Linux (operating system) : Apache (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (scripting languages)

; LEAP<ref name="KaislerObtain15">{{cite book |url=https://books.google.com/books?id=ajM_CwAAQBAJ&pg=PT69 |title=Obtaining Value from Big Data for Service Delivery |author1=Kaisler, S.H. |author2=Amour, F. |author3=Espinosa, A. |author4=Money, W.H. |publisher=Business Expert Press |page=PT69 |year=2015 |isbn=9781631572234}}</ref> : Linux (operating system) : Eucalyptus (free and open-source alternative to the Amazon Elastic Compute Cloud) : AppScale (cloud computing-framework and free and open-source alternative to Google App Engine) : Python (programming language)

; LEMP/LNMP<ref name="LEMPHome">{{cite web |url=https://lemp.io/ |title=LEMP Stack Info |work=LEMP.io |access-date=6 July 2018}}</ref> : Linux (operating system) : Nginx (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (scripting languages)

; LLMP<ref name="JohnstonSetting09">{{cite web |url=http://www.chrisjohnston.org/ubuntu-tutorials/setting-up-a-llmp-stack-linux-lighttpd-mysql-php5-on-ubuntu-810 |title=Setting up a LLMP Stack (Linux, Lighttpd, MySQL, PHP5) on Ubuntu 8.10 |author=Johnston, C. |work=ChrisJohnston.org |date=18 February 2009 |access-date=6 July 2018 |archive-date=5 February 2019 |archive-url=https://web.archive.org/web/20190205042248/http://www.chrisjohnston.org/ubuntu-tutorials/setting-up-a-llmp-stack-linux-lighttpd-mysql-php5-on-ubuntu-810 |url-status=dead }}</ref> : Linux (operating system) : Lighttpd (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (scripting languages)

; LYME and LYCE<ref name="SamkoughSolution16">{{cite web |url=http://idioknowledge.blogspot.com/2016/07/solution-stack.html |title=Solution Stack |work=Idiosyncratic Knowledge |date=9 July 2016 |access-date=9 July 2016}}</ref> : Linux (operating system) : Yaws (web server, written in Erlang) : Mnesia or CouchDB (database, written in Erlang) : Erlang (functional programming language)

; MAMP<ref name="CoucouvanisGetYour07">{{cite journal |url=https://books.google.com/books?id=3gIAAAAAMBAJ&pg=PA85 |title=Get Your Wiki On |journal=Mac Life |author=Coucouvanis, N. |issue=5 |pages=83–86 |year=2007 |access-date=6 July 2018}}</ref> : Mac OS X (operating system) : Apache (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming languages)

; LAPP<ref name="RittinghouseCloud17">{{cite book |url=https://books.google.com/books?id=jB-9DgAAQBAJ&pg=PT184 |title=Cloud Computing: Implementation, Management, and Security |author1=Rittinghouse, J.W. |author2=Ransome, J.F. |publisher=CRC Press |page=PT184 |year=2017 |isbn=9781351615365}}</ref> : Linux (operating system) : Apache (web server) : PostgreSQL (database management systems) : Perl, PHP, or Python (scripting languages)

; WAMP<ref name="AMPPS-WAMP">{{cite web |url=http://ampps.com/wamp |title=WAMP |publisher=Softaculous Ltd |access-date=6 July 2018}}</ref> : Windows (operating system) : Apache (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming language)

; WIMP<ref name="AWSTutorialWIMP">{{cite web |url=https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-WIMP.html |title=Tutorial: Installing a WIMP Server on an Amazon EC2 Instance Running Windows Server |work=AWS Documentation |publisher=Amazon Web Services, Inc |access-date=6 July 2018}}</ref> : Windows (operating system) : Internet Information Services (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming language)

; WINS<ref name="EvgenHowTo18">{{cite web |url=https://gbksoft.com/blog/how-to-choose-your-technology-stack/ |title=How to Choose Your Technology Stack for Web Development |author=Evgen |work=GBKSOFT Blog |publisher=GBKSOFT Dev LLC |date=28 January 2018 |access-date=6 July 2018}}</ref> : Windows Server (operating system) : Internet Information Services (web server) : .NET (software framework) : SQL Server (database)

; WISA<ref name="SachdevaWhich09">{{cite web |url=https://www.developer.com/design/article.php/3822286/Which-Web-Application-Stack-Is-Best-for-Me.htm |title=Which Web Application Stack Is Best for Me? |author=Sachdeva, B. |work=developer.com |publisher=QuinStreet, Inc |date=27 May 2009 |access-date=6 July 2018}}</ref> : Windows Server (operating system) : Internet Information Services (web server) : SQL Server (database) : ASP.NET (web framework)

=== OS-agnostic web stacks === ; ELK<ref name="ChhajedLearning15">{{cite book |chapter-url=https://books.google.com/books?id=EfqoCwAAQBAJ&pg=PA1 |chapter=Chapter 1: Introduction to ELK Stack |title=Learning ELK Stack |author=Chhajed, S. |publisher=Packt Publishing Ltd |pages=1–22 |year=2015 |isbn=9781785886706}}</ref> : Elasticsearch (search engine) : Logstash (event and log management tool) : Kibana (data visualization)

; MARQS<ref name="FramptonComplete18" /> : Apache Mesos (node startup/shutdown) : Akka (toolkit) (actor implementation) : Riak (data store) : Apache Kafka (messaging) : Apache Spark (big data and MapReduce)

; NMP<ref name="LunaProg17">{{cite book |url=https://books.google.com/books?id=VBVFDwAAQBAJ&pg=PA17 |title=Programador Web Full Stack: Desarrollo frontend y backend |author=Luna, F. |publisher=RedUSERS |pages=17–18 |year=2017}}</ref> : Nginx (web server) : MySQL or MariaDB (database) : PHP (programming language)

; OpenACS<ref name="OpenACSWhatIs">{{cite web |url=https://openacs.org/about/what-is-openacs |title=OpenACS: What it is and why to use it |publisher=OpenACS Community |work=OpenACS.org |access-date=6 July 2018}}</ref> : NaviServer (web server) : OpenACS (web application framework) : PostgreSQL or Oracle Database (database) : Tcl (scripting language)

; PLONK : Prometheus (metrics and time-series) : Linkerd (service mesh) : OpenFaaS (management and auto-scaling of compute) : NATS (asynchronous message bus/queue) : Kubernetes (declarative, extensible, scale-out, self-healing clustering)

; SMACK<ref name="FramptonComplete18" /> : Apache Spark (big data and MapReduce) : Apache Mesos (node startup/shutdown) : Akka (toolkit) (actor implementation) : Apache Cassandra (database) : Apache Kafka (messaging)

; XAMPP<ref name="AFXAMPP">{{cite web |url=https://www.apachefriends.org/index.html |title=XAMPP Apache + MariaDB + PHP + Perl |publisher=Apache Friends |access-date=6 July 2018}}</ref> : cross-platform (operating system) : Apache (web server) : MariaDB or MySQL (database) : PHP (programming language) : Perl (programming language)

; XRX<ref name="McCrearyXRX">{{cite web |url=http://www.danmccreary.com/xrx/ |title=XRX |author=McCreary, D. |work=danmccreary.com |access-date=6 July 2018}}</ref> : XML database (database such as BaseX, eXist, MarkLogic Server) : XQuery (Query language) : REST (client interface) : XForms (client)

==See also== {{Wiktionary|stack}} * List of content management systems * Content management system * List of Apache–MySQL–PHP packages * Purple squirrel * Web framework

==References== {{reflist}}

{{Web interfaces}}

Category:Software architecture Category:Web frameworks