Deploy web apps with Vercel
Intermediate

Deploy web apps with Vercel

In this codelab you'll create a Vercel account, deploy a project directly from GitHub, learn how free subdomain URLs work, and explore custom domains — all without touching a server.

What you'll use

  • Vercel A cloud platform that builds and deploys web applications automatically from your Git repositories. Learn more
  • GitHub The platform where your code lives — Vercel connects directly to your GitHub repos. Learn more
15–20 min

⚠️ Prerequisite

This codelab assumes you already have a GitHub account. If not, complete the Getting started with GitHub codelab first.

1What is Vercel?

Vercel is a cloud platform designed specifically for deploying web applications. It connects to your GitHub repository and automatically builds and deploys your project every time you push code — similar to GitHub Pages, but with far more capabilities.

Here's what makes Vercel different from GitHub Pages:

📄 GitHub Pages

  • Static files only (HTML, CSS, JavaScript)
  • No server-side code
  • Manual configuration via repository settings
  • Great for portfolios, docs, and simple sites

Vercel

  • Static sites and full-stack applications
  • Serverless functions (Node.js, Python, Go, Ruby)
  • Automatic deployments with preview URLs for every branch
  • Built-in analytics, edge network, and framework optimization

Think of it this way: GitHub Pages is great for serving HTML files. Vercel is built for deploying real applications — from a simple landing page to a full-stack web app with APIs and databases.

💡 Already deployed on GitHub Pages? You don't have to choose one or the other. Many developers use GitHub Pages for documentation sites and Vercel for their full applications. If you've already built a static site, check out the GitHub Pages codelab.

2Create a Vercel account

The easiest way to get started is to sign up with your GitHub account. This lets Vercel see your repositories and deploy them automatically.

  1. Go to vercel.com/signup
  2. Click "Sign Up" in the top-right corner.
  3. Select "Continue with GitHub" and authorize the Vercel app.
  4. You'll be taken to your Vercel dashboard — this is where you'll manage all your projects.

🏢 Create an organization (optional)

Vercel uses organizations (called "teams" on paid plans) to group projects together. On the free Hobby plan, your personal account works like an organization.

If you want to create a separate organization for a team or company:

  1. Click your avatar in the top-left corner of the dashboard.
  2. Click "Create Team" and enter a name.
  3. Choose the free Hobby plan to get started.

💡 For personal projects, you don't need a separate organization — your default account is ready to go.

3Deploy your first project

Let's deploy a repository that already exists on your GitHub account. If you completed the GitHub Setup codelab, you already have a repository ready to go.

  1. From your Vercel dashboard, click "Add New…" → "Project".
  2. You'll see a list of your GitHub repositories. Select the one you want to deploy.
  3. Vercel will auto-detect the framework (if any) and configure the build settings for you.
  4. Click "Deploy" and wait about 30–60 seconds.

That's it — your project is live! Vercel automatically:

  • Clones your repository
  • Installs dependencies (npm install, pip install, etc.)
  • Runs the build command
  • Deploys the output to a global edge network

🔍 Preview deployments

Every time you push to a branch (not just main), Vercel creates a unique preview URL. This lets you test changes before merging. Your team can review the preview, leave comments, and approve — all before the change goes live.

💡 No repository yet? If you don't have a repository to deploy, you can also start from one of Vercel's built-in templates. From the "Add New Project" page, scroll down to browse starter templates for Next.js, React, Python, and more.

4Understanding your site URL

Every project you deploy on Vercel gets a free URL on the .vercel.app domain. The URL is based on your project name:

Default format:

https://my-portfolio.vercel.app

If the project name is already taken, Vercel will add a random suffix. You can change the project name in your project settings to get a cleaner URL.

🔗 Types of URLs

Production URL

Your main deployment (from the main or production branch):

https://my-portfolio.vercel.app

Preview URL

A unique URL for each push or pull request:

https://my-portfolio-git-feature-header-maria-dev.vercel.app

Deployment URL

A permanent URL for each specific deployment (never changes):

https://my-portfolio-abc123def.vercel.app

💡 Tip: The production URL always shows your latest main branch deployment. Preview URLs let you share work-in-progress with teammates before merging.

5Custom domains

If you own a domain name (e.g. mariadev.com), you can connect it to your Vercel project instead of using the .vercel.app URL.

  1. Go to your project on the Vercel dashboard.
  2. Click "Settings" → "Domains".
  3. Enter your custom domain and click "Add".
  4. Vercel will show you the DNS records you need to add at your domain registrar (e.g. Namecheap, Cloudflare, Google Domains).

🌐 DNS configuration

Vercel typically asks you to add one of these records:

  • A record — For root domains (e.g. mariadev.com), point to Vercel's IP address: 76.76.21.21
  • CNAME record — For subdomains (e.g. www.mariadev.com), point to cname.vercel-dns.com

After DNS propagation (usually a few minutes, sometimes up to 48 hours), your site will be available at your custom domain. Vercel automatically provisions a free SSL certificate — no extra steps needed.

BeforeAfter
https://my-portfolio.vercel.apphttps://www.mariadev.com

💡 Tip: Vercel supports multiple domains per project. You can have both mariadev.com and www.mariadev.com pointing to the same deployment.

6What can you deploy?

Vercel is designed for frontend frameworks and full-stack applications, but it can deploy almost anything that serves HTTP. Here's what works great:

Frameworks Vercel supports natively

  • Next.js — Full-stack React framework (Vercel built it!) with server-side rendering, API routes, and more
  • React, Vue, Svelte, Angular — Single-page applications built with any popular frontend framework
  • Astro, Hugo, Gatsby — Static site generators for blogs, docs, and content sites
  • Python (Flask, FastAPI, Django) — Backend APIs deployed as serverless functions
  • Node.js (Express, Hono, Fastify) — Server-side JavaScript APIs and middleware

Serverless functions

Vercel runs your backend code as serverless functions. Instead of a server running 24/7, your code only runs when a request comes in — and Vercel handles all the scaling automatically.

You can write serverless functions in:

  • Node.js / TypeScript
  • Python
  • Go
  • Ruby

🟢 Node.js on Vercel

If you've completed the Getting started with Node.js & npmcodelab, you already have everything you need to build and deploy a Node.js application on Vercel.

🐍 Python on Vercel

If you've completed the Getting started with Pythoncodelab, you can deploy Python APIs (Flask, FastAPI) as serverless functions on Vercel.

🆓 Free hobby plan limits

  • 100 GB bandwidth per month
  • Unlimited static sites
  • Serverless function executions (generous free tier)
  • One team member (personal use)
  • Preview deployments for every push

📖 Lesson: See how deployment fits into web application architecture in our Elements of a web application lesson.

🎉

You're all set!

You now have a Vercel account, have deployed a project, and understand how URLs, custom domains, and deployments work. You're ready to ship anything from a static site to a full-stack application!

Back to codelabs

How was this codelab?

Let us know what you thought — suggestions, issues, or anything else.

Deploy web apps with Vercel