Areas we serve
Chapter 5

Stacks You Will Actually See

The small MVP stack, then Next.js, Laravel, WordPress, Python, and Docker.

Learning objectives

  • Recognize the simple MVP stack and the heavier stacks tools generate
  • Read the runtime and the database off the repo, not the marketing page
  • See why “it runs on my laptop” is not a hosting plan

The tool has favorites

Models suggest stacks they were trained on. You will see the same heavy ones over and over, and you can choose a smaller one on purpose. The names matter less than two questions: what process has to stay running, and which database does it expect.

StackClues in the repoWhat the host must run
MVP: SPA + one API + SQLiteA vite or plain react app, a small server.js or index.php, and a file such as studio.db. No postgres service in the compose file, often no compose file at all.One process, a build of the SPA, and a disk that keeps the SQLite file. This is the right first stack for a class list.
Next.js (Node)package.json depends on next. Scripts include next build and next start. API routes live under app/api or pages/api.Node.js, a build step, then a long-running Node process. Often Postgres. Heavier than an MVP needs.
Laravel (PHP)composer.json requires laravel/framework. .env.example has DB_CONNECTION and APP_KEY.PHP, a web server, and MySQL or Postgres. PHP handles a request and exits. It is not a process you leave on port 3000.
WordPresswp-content, wp-config.php, themes and plugins. Sometimes no custom code at all.PHP and MySQL. This is what ordinary web hosting is built for.
Django or FastAPI (Python)requirements.txt or pyproject.toml lists django or fastapi. A manage.py file means Django.A Python environment, an app server (gunicorn or uvicorn), and usually Postgres.
Docker Composedocker-compose.yml lists services such as web, db, and sometimes redis.A host that runs Docker. The compose file is the stack diagram. Each service is a separate program.
The default is not a recommendation

Next.js is a frequent suggestion because tutorials use it, not because a class studio needs a Node process and Postgres on day one. A single-page app plus SQLite, or a WordPress or Laravel app, can be the smaller choice when the product is a class list and a form. Match the stack to the MVP. Add the database server when the file is no longer enough.

Worked example — Workshop Co.

Their generated app has "next": "15.x" in package.json, provider = "postgresql" in Prisma, and no wp-content. That is a Next.js app with Postgres. A plan that only serves PHP files will not start it. A VPS with Node, a build step, and a Postgres database will.

Match the clue

Five folders arrive. Match each clue to the host requirement.

  1. manage.py and django in requirements.txt
  2. wp-config.php and a themes directory
  3. next start in the scripts, plus DATABASE_URL pointing at Postgres
  4. docker-compose.yml with services named app and db
  5. studio.db next to a server.js that imports better-sqlite3, plus a vite config
Answer
  1. Python app server plus a database. Django.
  2. PHP and MySQL. Ordinary web hosting fits.
  3. Node process that stays running, a build, and Postgres. A static file host is not enough.
  4. A Docker host. Do not split the two services onto a plan that cannot run containers unless you are ready to replace them with installed programs.
  5. The MVP stack. One Node process, a built single-page app, and a SQLite file. No separate database server.