A development stack is actually a very loosely defined term, which actually refers to the list of technologies and frameworks that you need in order to get an application up-and-running. It's called a stack because each layer is more and more abstracted from the user. Consider the example of the popular MEAN stack (MongoDB, Express, AngularJS, Node.js). If we were to actually make a physical stack out of these, it would look like this:
AngularJS is served by the Express server, which is run by the Node.js JavaScript runtime, which in turn is able to interact with the MongoDB database.
What's important to note is that as we move down the stack, each layer gets more and more inaccessible to the user of our application:
- The user has full and uninhibited access to the frontend Angular code.
- There is limited interaction with the Express server...