What a Tech Stack Actually Is
The set of programs that deliver an app, whether you picked them or a tool did.
Learning objectives
- Define “tech stack” without naming a brand
- Separate the code in a repository from the programs that run it
- Use a dependency file as the first clue
A stack is the set of programs that deliver the app
A tech stack is every program that has to be present for the product to work: what the browser runs, what the server runs, where data is stored, and the machine (or hosting plan) those programs sit on. People often use the word for a brand pair — “a Next.js stack,” “a Laravel stack.” The useful meaning is the jobs, not the logos.
Think of a restaurant. The menu the guest sees is not the kitchen, the kitchen is not the walk-in fridge, and none of those are the building. A generated app is the same shape. The page, the program that answers “reserve this class,” the database row that remembers the reservation, and the server that keeps that program running are four different things. A tool can write all four into one folder. They still fail independently.
A repository is a recipe. A stack is the kitchen that can cook it. Copying the folder to a server does nothing until the programs the recipe names are installed and started.
What you can see in the folder
| You find this | It usually means |
|---|---|
package.json | JavaScript. Look at dependencies for React, Next, Express, and the scripts named dev, build, and start. |
composer.json | PHP. Laravel and many WordPress tools live here. |
requirements.txt or pyproject.toml | Python. Django, Flask, and FastAPI show up as package names. |
Dockerfile or docker-compose.yml | The app expects one or more containers. The compose file often names the database too. |
.env.example | A list of settings the app refuses to start without: database URL, secret keys, public site URL. |
Worked example — one sentence per file
Workshop Co.’s folder contains package.json, a prisma/schema.prisma file whose first lines say provider = "postgresql", and .env.example with DATABASE_URL and NEXTAUTH_SECRET. You do not need to read the React components yet. Those three files already say: JavaScript app, Postgres database, and a login secret that must exist on the server and must not be committed to git.
Name the clue
A friend says “the AI made me a site.” The folder has composer.json with laravel/framework, a .env.example containing DB_CONNECTION=mysql, and no package.json. What two parts of the stack can you already name?
Answer
The application is PHP, specifically Laravel. The database it expects is MySQL (or a compatible server such as MariaDB). You still do not know the domain, the web server in front of PHP, or the size of the machine. Those are hosting decisions, not files.