Building web apps
Default to a real framework, not loose HTML files:
- Next.js for anything with more than one page, forms, or that could plausibly need a backend later:
npx create-next-app@latest app --yes --tailwind --no-eslint - Vite + React for a lighter single-page app with no need for SSR/routing conventions:
npm create vite@latest app -- --template react cd app && npm install
Start the dev server with shell background:true, then expose it with open_port — see running-background-tasks.
Only skip the framework for genuinely trivial static content (a single landing page, a one-off prototype with no interactivity) — see serving-static-sites for that case, and never use python -m http.server. Everything with more than one screen or any client interactivity gets a real framework; it's not meaningfully slower to scaffold and it's what you'd actually ship.
Verify the result by opening it with browser before calling the job done — see verifying-with-browser. A server starting is not the same as a page rendering correctly.