- Older React + Vite project: run npm run build locally, upload the contents of dist/ to public_html, and add the .htaccess rewrite so refreshes don't 404.
- TanStack Start project: needs Node.js hosting (Business or Cloud plans). Build with NITRO_PRESET=node-server and start with node .output/server/index.mjs.
- Vite bakes VITE_ variables in at build time — build with your real values before uploading.
Step by step
-
Check your project type
- TanStack Start (new projects): package.json lists @tanstack/react-start or @lovable.dev/vite-tanstack-config; there are files under src/routes/.
- React + Vite (older projects): vite.config.ts and index.html at the repo root, no src/routes/ folder, build output is dist/.
-
Get the code onto GitHub
- Connect GitHub (available on all plans): Project → Settings/Connectors → GitHub → Connect project. Lovable creates a repo and keeps it in two-way sync.
- Downloading the codebase as a file and editing code in Lovable require a paid plan.
-
Create the project on Hostinger
hPanel → Websites → Create/Add website → Web App (Node.js) → Import Git repository, authorise GitHub and select the repo. Or upload a .zip of the project source.
-
Check the build settings
Hostinger auto-detects the framework. For Vite: build
npm run build, outputdist.For Lovable: build command
npm run build, output dist (Netlify / Cloudflare / static). On Vercel leave Output Directory empty for TanStack projects. -
Add environment variables before the first build
In Hostinger: Review build settings screen → Environment variables (you can Import .env). Copy these from Lovable:
-
VITE_SUPABASE_URL -
VITE_SUPABASE_PUBLISHABLE_KEY -
VITE_SUPABASE_PROJECT_ID -
SUPABASE_URL and SUPABASE_PUBLISHABLE_KEY (server-side, TanStack Start projects)
Changed a value later? Rebuild. Vite bakes variables in at build time. Troubleshoot missing env vars
-
-
Make page refreshes work (Vite / React Router single-page apps)
public_html/.htaccess (Node.js web app deploys generate this automatically) RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]Server-rendered projects (TanStack Start, Next.js) don't need this. Hostinger docs (opens in a new tab)
-
Update login redirect URLs
Add your new Hostinger URL (and later your custom domain) to your auth provider's allowed URLs. In Supabase: Authentication → URL Configuration. Redirect troubleshooting · Check RLS before going live
-
Add your domain
Domains bought at Hostinger connect from hPanel; external domains are pointed via nameservers or DNS records shown in hPanel.
What it will cost
No free tier No free tier — prepaid plans with a 30-day money-back guarantee. Paid from $2.99/mo: Promotional rate on a 48-month prepay; renewal $10.99/month. Business plan price: unverified (not clearly labelled on the page we checked). Checked 17 Oct 2026 on Hostinger's pricing page (opens in a new tab).
- Headline prices require long prepaid terms and renew higher. Prices may vary by country and currency.
- Static uploads work on Premium; Git-based Node.js app deploys need Business or Cloud.