Choices

What a "Stack" Is, and How to Pick One

People will ask "what's your stack?" and it sounds like an exam question. It is not. A stack is simply the list of tools your app is built from — like the ingredients list on a recipe.

The name comes from the layers sitting on top of each other: the part people see, the part that does the thinking, the part that stores data, and the place it all runs.

  1. Languagewhat the code is written in
  2. Frameworkpre-built pieces so you do not start from nothingoptional
  3. Databasewhere the data livesoptional
  4. Hostwhose always-on computer it runs on
Bottom to top, in the order they depend on each other. The two dashed layers are the optional ones: a single web page is a language and a host — two layers, and a complete stack.

The layers, in plain words

  • Language — what the code is written in. JavaScript, Python, and others.
  • Framework — a pre-built set of pieces so you are not starting from nothing. Like a kit car versus machining your own parts.
  • Database — where the data lives (the last stage).
  • Host — whose always-on computer it runs on (the next stage).

Some projects have fewer layers. A single web page has a language and a host, and that is a complete, legitimate stack. Not every app needs every layer.

How to actually choose

Here is the uncomfortable truth: for a first project, almost any mainstream choice will work. The stack is rarely what decides whether you finish. Ordering these by what actually matters:

1. Pick what your AI knows best. This is genuinely the strongest reason when you build with AI. These models learned from public code, so the more widely used something is, the better the help you will get. A popular, slightly older tool will give you better AI output than an exciting three-month-old one.

2. Pick boring. Boring means widely used, well documented, and full of people who already hit your problem and wrote down the answer. When you are stuck at 11pm, the size of that crowd is what saves you.

3. Pick what you can host easily and cheaply. A stack you cannot afford to run, or cannot work out how to deploy, is not a stack — it is a hobby project on your laptop.

4. Pick fewer pieces. Every tool you add is another thing to learn, update, and debug. Two tools that do a job adequately beat five that do it beautifully.

The mistakes worth avoiding

  • Choosing for a scale you do not have. Designing for millions of users when you have none costs real time and buys nothing. You can change it later — you will have learned more by then anyway.
  • Chasing the newest thing. New tools have thin documentation, few answers online, and weaker AI support. Exciting to read about, painful to build in.
  • Adding a database you do not need. See the previous stage — if nothing is shared and nothing must survive, you may not need one at all yet.
  • Letting the tool pick silently. Ask an AI to "build an app" and it will choose for you, without saying so. That is fine if you then ask what it chose and why — it is not fine if you never find out.

The question to ask before you start

Put this to whichever AI you use, before writing anything:

I want to build [describe it in one sentence]. I am a beginner. Suggest the simplest stack that can do this, explain each piece in plain English and why it is there, and tell me what it will cost to run. Prefer boring, widely used tools over new ones. Tell me what you are leaving out and when I would need it.

That last sentence is the valuable one. It turns a silent decision into an explained one, and it gives you a map of what comes later.

Changing your mind later

You can. People do it constantly. It costs more the longer you leave it, which is an argument for starting simple rather than for agonizing now.

The thing that genuinely hurts to change later is your data — its shape and where it lives. That is worth a little more thought up front than the framework, which is why the database stage came first.