Lesson 2 of 6
Deploying your app
From git push to a live URL, with HTTPS as the default.
By the end: You can deploy your project and open a public HTTPS URL.
Time to get your app running somewhere other than your laptop.
Before you start
You need three things:
- Your project running on your laptop from Course 2. If you can start it up and see it work in a browser, you are good. If you cannot, go back and finish Course 2 before continuing.
- A GitHub account with your Course 2 project saved to it. If you followed Course 2, you already have this.
- An account on the hosting platform you picked. Free. You sign up using your GitHub account so the two are linked. Instructions below.
If you are not sure whether your project is on GitHub, open Cursor, look at the bottom-left corner of the window. If you see a branch name (usually main), you have Git set up. If you also see a cloud icon or "Synchronize Changes" button that is active, your project is linked to GitHub.
Deploy to Fly.io
The good news: you only need three commands.
Step 1: install flyctl
flyctl is the command-line tool that talks to Fly.io. Open Cursor's integrated terminal (View menu → Terminal, or Ctrl+backtick).
On macOS:
brew install flyctlOn Windows (PowerShell):
iwr https://fly.io/install.ps1 -useb | iexOn Linux:
curl -L https://fly.io/install.sh | shWhat you should see: progress messages as the tool downloads and installs. When it finishes, the prompt returns.
Now log in:
fly auth loginWhat you should see: your browser opens. Log in to Fly.io (or sign up if you have not). When you come back to the terminal, it should say you are logged in.
Step 2: launch the app
From inside your project folder, run:
fly launchflyctl asks you a series of questions. For most, the default answer is correct. The important ones:
- "App name?" Pick something short, lowercase, and unique. It becomes part of your URL (
your-name.fly.dev). - "Region?" Pick the one closest to you.
- "Deploy now?" Say yes.
What you should see: flyctl creates a file called fly.toml in your project folder. This is the configuration for your Fly.io app. Git will track it automatically - that is fine. Then the terminal shows the build happening live.
Step 3: watch it deploy
The deploy takes two to four minutes for a first run. When it finishes, the terminal prints a URL like your-app-name.fly.dev. Open it in a browser. Your app is on the internet.
If the deploy fails: scroll up in the terminal and look for a line starting with Error:. Lesson 5 covers the most common causes.
From now on
When you make changes, run this command from your project folder:
fly deployFly.io rebuilds and redeploys. Unlike Vercel and Netlify, Fly.io does not redeploy automatically when you push to GitHub - you trigger each deploy yourself. This is simpler to understand at first. You can set up automatic deploys later if you want.
Curious about other platforms?
On Vercel
Vercel follows the same pattern as Netlify: connect GitHub, pick the repo, click Deploy, get a URL. The only real differences are the button labels and a slightly different default URL shape (your-app.vercel.app instead of your-app.netlify.app). Vercel is what Multicorn itself runs on.
On Netlify
Netlify follows the same pattern as Vercel: connect GitHub, pick the repo, click Deploy, get a URL. The main differences are the button labels and the default URL shape (your-app.netlify.app instead of your-app.vercel.app). Netlify's free tier gives you slightly more bandwidth.
Your progress saves in this browser only. Clearing site data will reset it.