This skill should be used when the user asks to "deploy to Vercel", "deploy to Fly.io", "deploy to Railway", "deploy to Hetzner", "set up Coolify", "ship to production", "configure preview deployments", "set up custom domain", "rollback a deploy", or works on hosting/CI for a client project. For raw Docker/K8s/Grafana infra, use the `devops` skill instead.
Apply when deploying freelance projects to managed hosts. Pick the right target per stack and client budget. For self-hosted Docker/K8s infra, use the devops skill instead.
| Stack | First choice | Alternative | Self-host |
|---|---|---|---|
| Next.js | Vercel | Railway | Coolify on Hetzner |
| Astro SSR | Vercel / Netlify | Fly.io | Coolify on Hetzner |
| Astro static | Cloudflare Pages | Netlify | — |
| .NET 10 | Fly.io | Railway | Coolify / K8s |
| React Native | EAS Build → App Store / Play | — | — |
.envwww to cname.vercel-dns.compackage.json engines.node or .nvmrcvercel.json only when framework detection is insufficientfly launch — generates fly.toml + Dockerfilefly secrets set DATABASE_URL=... — never in fly.tomlams or fra for TR clients (low latency)/health endpoint — return 200 fastfly deploy for prod; fly deploy --config fly.staging.toml for stagingcurl -fsSL https://cdn.coollabs.io/coolify/install.sh | bashdevops skill's Grafana LGTM stack if multiple services.env.local (never committed), template committed as .env.examplefly releases → fly deploy --image <previous-image>npm run build / dotnet publish passes locallytesting skill)database skill)devops — Docker/K8s/Grafana for self-hosted setupsdatabase — migration workflow before a deploysecurity — secrets handling, HTTPS headersgit-workflow — release branch / tag strategy