Every framework Light Cloud detects and builds - full-stack and backend apps as containers, static frontends on the CDN, and Dockerfile for the rest.
Frameworks
Light Cloud reads your repository and picks the right build. Static frontends go to the CDN, everything else runs as a container on Cloud Run. This page is the complete list of what detection recognises.
Full-stack#
Server-rendered apps run as containers that scale to zero when idle:
Every framework name links to its deploy guide.
| Framework | Runtime | Default port | Notes |
|---|---|---|---|
| Next.js | Node.js | 3000 | Static export serves from the CDN |
| Nuxt | Node.js | 3000 | |
| SvelteKit | Node.js | 3000 | |
| Remix | Node.js | 3000 | |
| Astro | Node.js | - | Static output, served from the CDN |
| Django | Python | 8000 | |
| Ruby on Rails | Ruby | 3000 | |
| Laravel | PHP | 8080 | |
| Symfony | PHP | 8080 | |
| WordPress | PHP | 8080 | One-click database wiring; also a stack |
| Blazor | .NET | 8080 | |
| Wasp | Node.js | 8080 | Powers the Open SaaS template |
Frontend#
Static builds served from a global CDN, with free bandwidth. Detection also knows each framework's default output directory:
| Framework | Output directory |
|---|---|
| React | dist |
| Vue | dist |
| Angular | dist/browser |
| Svelte | dist |
| SolidJS | dist |
| Qwik | dist |
| Gatsby | public |
| Docusaurus | build |
| Eleventy | _site |
| Astro | dist |
| Next.js static export | out |
| Plain HTML, CSS, and JavaScript | . (the repository root) |
Hugo and Jekyll are not built on the platform yet - each needs its own toolchain in the build image. Build locally and deploy the output as static HTML.
Backend#
APIs and servers run as containers, on any of eight runtimes. A plain runtime with no framework works too - a bare Node script or Go module deploys the same way:
| Framework | Runtime | Default port |
|---|---|---|
| Express | Node.js | 8080 |
| Fastify | Node.js | 3000 |
| NestJS | Node.js | 3000 |
| AdonisJS | Node.js | 3333 |
| Hono | Node.js | 3000 |
| Plain Node.js | Node.js | 8080 |
| FastAPI | Python | 8000 |
| Flask | Python | 8000 |
| Plain Python | Python | 8000 |
| Gin | Go | 8080 |
| Echo | Go | 8080 |
| Fiber | Go | 8080 |
| Plain Go | Go | 8080 |
| Spring Boot | Java | 8080 |
| Quarkus | Java | 8080 |
| Plain Java | Java | 8080 |
| Sinatra | Ruby | 3000 |
| Plain Ruby | Ruby | 3000 |
| ASP.NET | .NET | 8080 |
| Plain PHP | PHP | 8080 |
| Dockerfile | Any | 8080 |
The port is where traffic is routed and what PORT is set to - change it in Build settings if your server listens elsewhere. A repository with a Dockerfile runs as is, whatever is inside - see Deploy with a Dockerfile.
How detection works#
Light Cloud reads the repository and works out the whole build without configuration:
- Framework - from dependencies and config files.
next.config.js,vite.config.ts,angular.json, and their peers are parsed to find where the build output lands. - Package manager - from the lockfile.
pnpm-lock.yaml,yarn.lock, orpackage-lock.jsondecide whether the install step runs pnpm, yarn, or npm - with a lockfile present, installs are exact (npm ci). - Build command and output directory - from the framework and your
package.jsonscripts. The defaults per framework are tabled under Build settings. - Dockerfile - a
Dockerfilein the repo always wins and runs the app as a container, exactly as written. Without one, Light Cloud generates a Dockerfile for the detected framework; generated Node images run on Node 22. See Builds.
Every detected value is shown before the first deploy and can be overridden - per application, and again per environment. See Deployments.
Not sure what you'll get?#
Create the application and look at the detected settings before deploying - nothing builds until you confirm. If your setup is unusual, set the build command and output directory by hand and the detection stays out of the way.
Deploy guides#
Every framework above has its own deploy guide - click its name in the tables, or expand Frameworks in the sidebar for the full list. The most-trodden paths: