VibeHost

Migrate from Netlify

Same shape, different platform. _redirects + _headers carry over.

If your Netlify site is mostly static (Vite, Astro, Hugo, MkDocs, static-export sites, etc.), the migration is straightforward — VibeHost reads Netlify-style _redirects and _headers files. Migration takes 15–30 minutes for most sites.

Step-by-step

1. Verify local build

Run whatever Netlify is configured to run (npm run build, hugo, etc.). If it produces a static directory locally, you're set.

2. Create the VibeHost app

vibehost app create my-site
vibehost link --app my-site

3. First deploy

Find the publish directory Netlify uses (in netlify.toml under [build] publish = "..." — typically dist/, _site/, public/, out/):

vibehost deploy ./dist

If your site uses client-side routing (Vue Router, React Router with browser history, SvelteKit SPA):

vibehost deploy ./dist --spa

4. Headers + redirects

Netlify's _headers and _redirects files ship with the deploy and work the same way on VibeHost. Put them at the root of your publish dir.

# _headers
/*
  Cache-Control: public, max-age=3600
  X-Robots-Tag: noindex

/assets/*
  Cache-Control: public, max-age=31536000, immutable
# _redirects
/old-page    /new-page    301
/blog/*      /posts/:splat 301

VibeHost dispatcher reads these on deploy. For dynamic redirects (no rebuild), use platform redirects:

vibehost redirects add /old /new --app my-site
vibehost redirects list --app my-site

Platform redirects override _redirects on conflict.

5. Forms / Functions / Edge Functions

These are Netlify-specific and don't have direct VibeHost equivalents today:

  • Netlify Forms — replace with an external form backend (Formspree, Web3Forms, Basin, your own API).
  • Netlify Functions (Lambda) — host the backend on a managed service (Fly.io, Render, Railway, your own API host) and call it from the static frontend on VibeHost.
  • Edge Functions — same shape: keep the static site on VibeHost, move the edge logic to a dedicated edge provider until VibeHost's server runtime ships publicly.

If your site is mostly forms / functions, the pragmatic split is "frontend on VibeHost, backend wherever makes sense" — server-side rendering on VibeHost is in private beta; see the Next.js guide for status.

6. Environment variables

# Pull from Netlify (if you have netlify-cli)
netlify env:list

# Set on VibeHost
vibehost env set DATABASE_URL=... --app my-site --target runtime
vibehost env set API_KEY=... --app my-site --secret

Note: env vars on static apps reach only _redirects / _headers substitution and a few specific build-time placeholders. Most "build-time env" is set in your CI / local shell before npm run build, not via vibehost env set.

7. Custom domain

vibehost domain add www.example.com --app my-site
vibehost domain verify www.example.com --app my-site

At your DNS provider, swap the CNAME from <site>.netlify.app to <app>.vibehost.space. See custom domains for per-provider walkthroughs.

8. Cutover

DNS swap moves traffic gradually as caches expire (typically 5 min – 1 hour given a 300s TTL). Both Netlify and VibeHost serve during the transition; deactivate Netlify only after 24h confidence.

Feature parity table

Netlify featureVibeHost equivalentNotes
Static deploysIdentical model
Build minutesn/aBuild on your machine / CI
_redirectsSame syntax
_headersSame syntax
Custom domains + HTTPSAutomatic HTTPS, no config
Deploy previewschannels, not branch-tied
Branch deploysChannels with branch names work fine
FormsExternal form backend
FunctionsHost backend externally (server runtime in private beta)
Edge FunctionsHost edge logic externally for now
Identity / authExternal auth (Clerk, Auth.js, Supabase)
Large MediaUse S3 / external object storage
Split testingRoll your own client-side or external edge
Bandwidth limitsdifferentSee pricing

What changes for your team

  • Deploys are a CLI command, not a git push. Set up CI/CD with GitHub Actions to keep the "push to deploy" feel.
  • Build minutes don't exist — they were a Netlify concept of paying for compute on their builders. VibeHost builds on your hardware. CI runners (GitHub, GitLab) are typically free for OSS / cheap for teams.
  • Per-PR previews still exist — see PR previews recipe.
  • Form data goes elsewhere — pick a backend ahead of cutover.

Rollback plan

DNS-level rollback to Netlify is the safest. Keep the Netlify site live for 7+ days after cutover; only delete the Netlify project once you're confident.

See also

On this page