| Next.js | JavaScript / TypeScript | npm run build, then the Next.js server with next start |
| React | JavaScript / TypeScript | npm run build, then serves the built files |
| Vue | JavaScript / TypeScript | npm run build, then serves the built files |
| Nuxt | JavaScript / TypeScript | npm run build, then serves the output |
| Astro | JavaScript / TypeScript | npm run build, then serves the output |
| SvelteKit | JavaScript / TypeScript | npm run build, then serves the output |
| Express | Node.js | npm start (or the package manager your lockfile uses) |
| NestJS | Node.js | npm run build, then npm run start:prod or npm start |
| Fastify | Node.js | npm start |
| Django | Python | pip install, then Django on PORT. Set your own start command, such as gunicorn, in Settings |
| Flask | Python | pip install, then gunicorn |
| FastAPI | Python | pip install, then uvicorn main:app on PORT |
| Laravel | PHP | composer install, then PHP serving the public/ folder |
| PHP | PHP | PHP serving public/ or the project root |
| Go | Go | go build, then runs the binary |
| Rust | Rust | cargo build --release, then runs the binary |
| Ruby on Rails | Ruby | bundle install, then bundle exec rackup |
| Spring Boot | Java | Maven package or Gradle bootJar, then java -jar |
| Docker | Any language | builds your image and runs it with PORT set |
| Static site | HTML, CSS, JavaScript | serves your files over HTTPS |