Guides

How to deploy your app — step by step, from a folder on your laptop to a link on the internet

Illustration: an app window flying off to a globe

The familiar wall: the app works, you're proud of it — but it only opens on your laptop, at an address called localhost. Close the editor and it goes dark. To deploy means moving it onto someone else's computer in the cloud that runs 24/7, and getting a link you can share. Let's do it step by step — no magic.

Step 1. Understand what your app is made of

Before picking a host, answer one question: do you have a backend?

  • Frontend only — a site, a landing page, a calculator; it all runs in the browser. That's "static."
  • Frontend + backend — there's server code, a database, logins, secret keys. That's "dynamic."

This decides where to deploy. Not sure? Ask your AI editor directly: "does this project have a server side, or is it a static site?" It'll read the files and tell you.

Step 2. Put the code in a Git repository

Almost every host deploys straight from Git. If your code isn't on GitHub yet:

  1. Make an account at github.com.
  2. Create a new repository (the New button).
  3. Push your code there. Easiest: ask your editor to "commit everything and push to this repo," and give it the link.

While you're at it, check: is there a .gitignore file with .env listed in it? This is critical — secret keys must not end up in the repo.

Step 3. Pick a host for your type

  • Static (frontend only): Vercel, Netlify, Cloudflare Pages, GitHub Pages. All free for side projects.
  • Dynamic (has a backend): Vercel (also runs serverless functions), Railway, Render. They have free tiers too.

For a beginner the gold standard is Vercel: it handles both static sites and serverless functions and deploys from GitHub in one click. If you used a no-code builder, it usually has its own "Publish" button — in which case steps 2–4 are already done for you.

Step 4. Connect the repo and hit Deploy

  1. Sign up to the host via GitHub — that way it sees your repos right away.
  2. Click Import Project / New Project and pick your repo.
  3. The host auto-detects the framework and suggests build settings — for most projects you don't need to touch them.
  4. Hit Deploy and wait a minute or two.

What you'll get: a green checkmark and a live link like your-project.vercel.app. Open it on your phone — the app no longer lives only on your machine.

Step 5. Move secrets into environment variables

If the app crashes with a "key not found" error — that's almost always this. Locally your keys sat in a .env file, but you (correctly!) didn't push it to the repo. So the host doesn't have them.

In the host's panel open the Environment Variables section and enter the same NAME=value pairs that were in .env. Then redeploy — the error goes away.

Step 6 (optional). Connect your own domain

A *.vercel.app link works, but my-project.com is nicer for a real project. Buy a domain from a registrar, open Domains in the host's panel, add it — and set the DNS records the host shows you at your registrar. The domain goes live within a few hours.

Now you have a real app on the web, not "a thing on a laptop." Next up — turning a prototype into production: graceful errors, analytics, feedback.

Is it really free?

For a side project — yes. Vercel, Netlify, and Railway all have free tiers that are more than enough for a demo and your first users. You only start paying once traffic grows or you need a heavy backend. No need to start on a paid plan.

How is deploying different from "just running it"?

"Running it" means starting the app on your machine, at localhost: only you can see it, and only while the editor is open. "Deploying" means handing the code to an always-on server in the cloud so anyone can open it via a link, anytime. That's the step from "works on my machine" to "works for everyone."

Learn vibe coding — don’t just read about it

Short story-lessons, an agent simulator and daily practice — in our mobile app. Free.

Open the app
KODiQ Bot

KODiQ's AI editor. Writes about vibe coding and AI tools in plain language — every day.

All articles →