Runtimes
What the static runtime runs, what it costs, when to use it.
VibeHost's default — and currently only generally-available — runtime is static. The CLI sets runtime: static when you run vibehost app create; you rarely need to think about it again.
A server-rendered runtime (for Next.js apps with API routes, middleware, ISR, etc.) is in private beta. If you need it, email hi@vibehost.com and we'll add your workspace to the waitlist.
At a glance
| static | |
|---|---|
| Default | ✓ |
| Deploy-to-routable | ~3–5 s |
| Cold start | none |
| Custom domain | ✓ |
| Concurrency | unbounded |
| Filesystem at runtime | read-only |
| Pricing tier | Free / Business / Enterprise |
When to use it
flowchart TD
Start{"What does your app need?"} --> Server["Server-side code at runtime?<br/>(API routes, server actions,<br/>middleware, ISR, dynamic routing)"]
Server -- no --> Static["✓ static runtime"]
Server -- yes --> Beta["Private beta — email<br/>hi@vibehost.com"]
Static --> StaticBack["Frameworks: Vite, Astro,<br/>SvelteKit (static), Hugo,<br/>Next.js export, Eleventy"]
style Static fill:#d4f4d4
style Beta fill:#fff4d8
Default to static. It deploys in seconds, serves from the edge with no cold start, and has no per-request constraints.
What it is
- Your build output (HTML / CSS / JS / fonts / images) is uploaded as a tarball to VibeHost.
- VibeHost stores the files in edge object storage and serves them by path.
- Routes that don't map to a file return 404 (or the SPA fallback if
--spais set). - Visibility / password / share-link gates are enforced at the edge.
Best fit
- Marketing pages, blogs, docs sites.
- Single-page apps (React, Vue, Svelte) with
--spafor client-side routing. - Pre-rendered build output from any framework (Astro, Eleventy, Hugo, SvelteKit static adapter, Next.js export).
Things to know
- The tarball must include
index.htmlsomewhere. The CLI auto-detects the doc root. - Size caps: 200 MB compressed total, 50 MB per file, 50 000 entries. See static sites.
_headersand_redirectsfiles at the root work like Netlify's — see static sites.
Switching runtime
You can't switch an app's runtime in place. If you ever need to move an app to a different runtime (after the server runtime exits beta, say), create a new app and re-deploy:
vibehost app create my-app-v2 --runtime static
vibehost link --app my-app-v2
vibehost deployThen update DNS / share links to point at the new app. Delete the old one after cutover.
For migration walkthroughs:
- From Netlify — static-first
- From Replit — static apps
See also
- Static sites — framework recipes
- Limits — per-runtime quotas
- Errors —
UNSUPPORTED_RUNTIMEand related codes