VibeHost
Reference

Runtimes

What the static runtime runs, what it costs, when to use it.

VibeHost's default runtime is static, and it's currently the only one that is generally available. The CLI sets runtime: static when you run vibehost app create, and you rarely need to think about it again.

Two server runtimes are in private beta: nextjs, for Next.js apps with API routes, middleware, ISR and the like, and node, for plain Node.js servers such as Express. The CLI can deploy both (node arrived in CLI v4.8.0), but the API accepts them only for workspaces in the beta. If you need one, email contact@vibehost.com and we'll add your workspace to the waitlist.

At a glance

static
DefaultYes
Deploy-to-routableFirst deploy at once; a redeploy within about a minute
Cold startnone
Custom domainYes
Concurrencyunbounded
Filesystem at runtimeread-only
Pricing tierFree / Business

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.<br/>Email contact@vibehost.com"]
  Static --> StaticBack["Frameworks: Vite, Astro,<br/>SvelteKit (static), Hugo,<br/>Next.js export, Eleventy"]
  style Static fill:#d4f4d4
  style Beta fill:#fff4d8

Start with static. It serves from the edge with no cold start and has no per-request constraints.

What it is

  • You upload your build output (HTML, CSS, JS, fonts, images) to VibeHost as a tarball.
  • 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 --spa is set.
  • The edge enforces the visibility, password, and share-link gates.

Best fit

  • Marketing pages, blogs, docs sites.
  • Single-page apps (React, Vue, Svelte) with --spa for 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.html somewhere. The CLI finds the doc root on its own.
  • Size caps: 500 MB compressed total, 100 MB per file, 50 000 entries. See static sites.
  • A _redirects file at the root works like Netlify's. See static sites.

Switching runtime

You can't switch an app's runtime in place. If you need to move an app to a different runtime, say after the server runtime leaves beta, create a new app and deploy again:

vibehost app create my-app-v2 --runtime static
vibehost link --app my-app-v2
vibehost deploy

Then point DNS and share links at the new app, and delete the old one after the cutover.

The migration walkthroughs cover static sites:

See also

  • Static sites has framework recipes.
  • Limits lists per-runtime quotas.
  • Errors covers UNSUPPORTED_RUNTIME and related codes.

On this page