Deploy from Lovable, Bolt & v0
AI app builders all end the same way: a working app in a git repository, and the question of where it should live once it's real. slew's answer is the same as for any other repo — connect it, push, get a URL on European infrastructure — with a few specifics per builder worth knowing.
Lovable
A Lovable project is a Vite + React single-page app (TypeScript, Tailwind, shadcn/ui), and Lovable syncs it to a GitHub repository you own. Connect that repository and you're done:
slew git connect owner/repo --output dist
The defaults — npm ci, npm run build, output dist — are exactly how
a Lovable export builds. From then on every change that reaches GitHub
deploys automatically, whether it came from Lovable's editor or from a
developer committing directly. The sync is two-way, so hosting on slew
doesn't end the Lovable editing loop; it just stops Lovable being the
place the app lives.
Three details that matter for Lovable exports:
Client-side routing works with zero config. Lovable apps route with React Router. slew's SPA fallback serves your app shell for extensionless deep links while missing assets still return real 404s — nothing to configure.
VITE_*env vars are build-time. Vite compiles them into the bundle, so set them with build scope before connecting or rebuilding:slew env set VITE_SUPABASE_URL=https://… --scope build slew env set VITE_SUPABASE_PUBLISHABLE_KEY=… --scope buildBecause they end up in the shipped JavaScript, they should only ever be publishable values — same as on any host.
Supabase stays where it is. Lovable backends run on Supabase, not on Lovable, so moving the frontend changes nothing server-side. Do add the new URL —
https://<project>.slew.cloudor your custom domain — to the redirect allow-list in your Supabase project's auth settings, or logins will bounce back to the old origin.
Bolt
Bolt.new scaffolds different stacks depending on what you asked it to build. There are two routes onto slew:
Push to GitHub from Bolt, then connect the repo with
slew git connect — framework detection proposes the build
recipe and you confirm it. Or download the project and ship it from
your machine:
npm install
npm run build
slew init
slew deploy dist
What Bolt scaffolded determines how it runs:
| Bolt built | On slew |
|---|---|
| Vite + React SPA (Bolt's default) | Static files with the SPA fallback — deploy dist |
| Next.js | Server runtime via output: 'standalone' — the Next.js recipe |
| Astro, SvelteKit, Remix | Static output as files, or a Node server per recipe: Astro, SvelteKit, Remix |
| Expo / React Native | Not a website — slew deploys web apps, not app-store builds |
v0
v0 generates Next.js. Set output: 'standalone' in next.config and
follow the Next.js guide — git builds detect standalone
output automatically and deploy the app as a real Node server, with ISR
and image optimization covered.
From prototype to production
Once the repo is connected, the production half is the platform's normal feature set, nothing builder-specific:
slew domains add app.example.com # your domain, EU DNS + CDN
slew env set VITE_API_URL=… --scope build
slew deployments # every deploy kept, instant rollback
Pull requests get expiring preview URLs commented on the PR — useful the moment a prototype grows a second contributor — and every site includes cookieless analytics measured at the CDN edge, so you can see whether the thing you built is getting visitors without adding a script or a consent banner.