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-site3. First deploy
Find the publish directory Netlify uses (in netlify.toml under [build] publish = "..." — typically dist/, _site/, public/, out/):
vibehost deploy ./distIf your site uses client-side routing (Vue Router, React Router with browser history, SvelteKit SPA):
vibehost deploy ./dist --spa4. 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 301VibeHost 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-sitePlatform 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 --secretNote: 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-siteAt 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 feature | VibeHost equivalent | Notes |
|---|---|---|
| Static deploys | ✓ | Identical model |
| Build minutes | n/a | Build on your machine / CI |
_redirects | ✓ | Same syntax |
_headers | ✓ | Same syntax |
| Custom domains + HTTPS | ✓ | Automatic HTTPS, no config |
| Deploy previews | ✓ | channels, not branch-tied |
| Branch deploys | ✓ | Channels with branch names work fine |
| Forms | ✗ | External form backend |
| Functions | ✗ | Host backend externally (server runtime in private beta) |
| Edge Functions | ✗ | Host edge logic externally for now |
| Identity / auth | ✗ | External auth (Clerk, Auth.js, Supabase) |
| Large Media | ✗ | Use S3 / external object storage |
| Split testing | ✗ | Roll your own client-side or external edge |
| Bandwidth limits | different | See 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
- Static sites — full static runtime details
- From Vercel — similar migration shape, different starting platform
- CI/CD with GitHub Actions — replace "git push deploys"