Deployment
killer generates a standard Vite + React project. Run npm install && npm run build to produce a dist/ folder with static files. Deploy that folder anywhere.
Vercel
vercel.com/new- 1.Download your project (Git panel > Download ZIP or push to GitHub)
- 2.Go to vercel.com/new
- 3.Import your GitHub repo (or drag-and-drop the folder)
- 4.Vercel auto-detects Vite + React and configures the build
- 5.Click Deploy — your site is live in ~30 seconds
Best for: React/Vite apps, automatic HTTPS, preview deploys on every push
Netlify
app.netlify.com/start- 1.Download your project or push to GitHub
- 2.Go to app.netlify.com/start
- 3.Connect your repo or drag-and-drop the dist/ folder
- 4.Set build command: npm run build
- 5.Set publish directory: dist
- 6.Click Deploy
Best for: Static sites, form handling, serverless functions
Cloudflare Pages
dash.cloudflare.com- 1.Push your project to GitHub or GitLab
- 2.Go to dash.cloudflare.com > Pages > Create a project
- 3.Connect your repository
- 4.Set build command: npm run build
- 5.Set build output directory: dist
- 6.Click Save and Deploy
Best for: Global edge delivery, free unlimited bandwidth
GitHub Pages
pages.github.com- 1.Push your project to a GitHub repo
- 2.Install gh-pages: npm install --save-dev gh-pages
- 3.Add to package.json scripts: "deploy": "npm run build && gh-pages -d dist"
- 4.Run: npm run deploy
- 5.Enable Pages in repo Settings > Pages > Source: gh-pages branch
Best for: Free hosting, open-source projects, documentation sites
Railway
railway.app- 1.Push your project to GitHub
- 2.Go to railway.app > New Project > Deploy from GitHub
- 3.Select your repo and configure the service
- 4.Railway auto-detects the stack and deploys
- 5.Get a public URL or add a custom domain
Best for: Full-stack apps, databases, background workers
Self-Hosted
- 1.Download the ZIP from killer
- 2.Run: npm install && npm run build
- 3.The dist/ folder contains your production-ready static files
- 4.Upload dist/ to any web server (Apache, Nginx, S3, etc.)
- 5.Point your domain to the server
Best for: Full control, existing infrastructure, air-gapped environments
After deployment
Free APIs work as-is after deploy. They're called directly from the browser and don't depend on killer's infrastructure.
Premium APIs use killer's server-side proxy, which won't be available after you deploy externally. You need to replace the proxy calls with your own backend. The downloaded code includes TODO [DEPLOY] comments at every proxy call showing what to change.
Before (using killer proxy)
const res = await fetch("/api/preview/proxy", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
service: "tmdb",
endpoint: "/3/trending/movie/week",
params: {}
})
});After (your own proxy or direct call)
// Option 1: Direct call with restricted key
const res = await fetch(
"https://api.themoviedb.org/3/trending/movie/week",
{ headers: { Authorization: `Bearer ${import.meta.env.VITE_TMDB_KEY}` } }
);
// Option 2: Your own serverless function
const res = await fetch("/api/tmdb/trending");Options for replacing the proxy:
- Vercel or Netlify serverless functions — add a
/apiroute that injects your key from environment variables - A simple Express or Fastify proxy server — 20 lines of code
- The service's client SDK with a restricted API key (where the provider supports it)