TL;DR
Deploy a Next.js landing page to Vercel with a single command: npx vercel --prod. Free tier includes custom domains, automatic HTTPS, global CDN, and preview deployments. This guide covers the full setup including DNS configuration, environment variables, and performance monitoring. Pages built with AppLander deploy to Vercel with zero configuration needed.
You have built your app landing page. The design is polished, the copy is sharp, and the screenshots are perfect. Now you need to get it on the internet. Deployment is the step where many developers stall — choosing a hosting provider, configuring DNS, setting up SSL certificates, and optimizing caching feels like a completely different discipline from building the page itself.
Vercel makes this a non-issue. It is the company behind Next.js, and their platform is purpose-built for deploying Next.js applications. For an app landing page, Vercel's free tier provides everything you need: global CDN, automatic HTTPS, custom domains, preview deployments, and analytics — with zero configuration.
Why Is Vercel the Best Choice for App Landing Pages?
Before we deploy, let me explain why Vercel specifically. There are dozens of hosting options, but Vercel is the clear winner for Next.js-based app landing pages:
- Zero configuration. Vercel automatically detects your Next.js project and configures the build pipeline. No Dockerfiles, no nginx configs, no build scripts.
- Global Edge Network. Your page is served from the closest data center to every visitor. A user in Tokyo and a user in London both get fast load times.
- Automatic HTTPS. SSL certificates are provisioned and renewed automatically. Your custom domain gets HTTPS without any setup.
- Preview deployments. Every git push creates a unique preview URL. Test changes before they go to production. Share preview links with collaborators for feedback.
- Free tier. Personal projects deploy for free with no credit card required. The free tier includes custom domains, 100GB bandwidth per month, and unlimited deployments. For an app landing page, this is more than enough.
- Instant rollbacks. If a deployment breaks something, roll back to the previous version with one click. No downtime.
How Do You Deploy for the First Time?
There are two ways to deploy: through the Vercel CLI (command line) or by connecting a Git repository. I will cover both.
Method 1: Vercel CLI (Fastest)
The CLI is the fastest way to get a first deployment live. Run this from your project directory:
# Install the Vercel CLI globally (one-time)
npm i -g vercel
# Deploy from your project directory
cd my-app-landing
vercelThe CLI walks you through a brief setup:
- Log in to Vercel (creates an account if you do not have one)
- Link the project to your Vercel account
- Detect the framework (Next.js) automatically
- Build the project in the cloud
- Deploy to a preview URL (e.g.,
my-app-landing-abc123.vercel.app)
To deploy to production (your main URL):
vercel --prodThat is it. Your landing page is live on the internet with a .vercel.app URL. The entire process takes under 2 minutes.
Method 2: Git Integration (Recommended for Ongoing Use)
For long-term use, connecting a Git repository is better. Every push to main automatically deploys to production, and every push to a branch creates a preview deployment.
# Initialize a git repo and push to GitHub
git init
git add .
git commit -m "Initial landing page"
git remote add origin https://github.com/yourname/my-app-landing.git
git push -u origin mainThen go to vercel.com/new, select "Import Git Repository," choose your repo, and click "Deploy." Vercel detects Next.js, builds the project, and deploys it. Future pushes to main trigger automatic redeployments.
How Do You Set Up a Custom Domain?
Your app landing page should live on your own domain, not a .vercel.app URL. Here is how to set that up:
Step 1: Add the Domain in Vercel
Go to your project settings in the Vercel dashboard, navigate to "Domains," and add your domain (e.g., myapp.com or www.myapp.com).
Step 2: Configure DNS Records
Vercel shows you the DNS records to add at your domain registrar. There are two options:
Option A: Using Vercel Nameservers (Recommended)
Change your domain's nameservers to Vercel's nameservers. This gives Vercel full control over DNS and enables the fastest possible configuration, including automatic SSL and edge network optimization.
# Set these nameservers at your domain registrar:
ns1.vercel-dns.com
ns2.vercel-dns.comOption B: Using CNAME/A Records
If you prefer to keep your existing DNS provider, add these records:
# For the root domain (myapp.com):
Type: A
Name: @
Value: 76.76.21.21
# For www subdomain:
Type: CNAME
Name: www
Value: cname.vercel-dns.comStep 3: Wait for DNS Propagation
DNS changes can take up to 48 hours to propagate globally, but most registrars complete within 1-4 hours. You can check propagation status at dnschecker.org.
Step 4: Verify SSL
Once DNS propagates, Vercel automatically provisions a Let's Encrypt SSL certificate for your domain. HTTPS works immediately — no configuration needed.
How Do You Handle Environment Variables?
If your landing page uses environment variables (for analytics, email capture APIs, etc.), add them in the Vercel dashboard:
- Go to project settings → "Environment Variables"
- Add each variable with its value
- Choose which environments it applies to (Production, Preview, Development)
# Common environment variables for app landing pages:
NEXT_PUBLIC_ANALYTICS_ID=plausible-site-id
NEXT_PUBLIC_APP_STORE_URL=https://apps.apple.com/app/...
RESEND_API_KEY=re_xxxxxxxxxxxx # For email captureVariables prefixed with NEXT_PUBLIC_ are exposed to the browser. Variables without the prefix are server-side only (safe for API keys).
How Do Preview Deployments Work?
Preview deployments are one of Vercel's best features for iterating on your landing page. Every time you push to a non-production branch, Vercel creates a unique URL with that version of your site.
# Create a branch for testing a new headline
git checkout -b test-new-headline
# Make your changes...
# Push — Vercel automatically creates a preview deployment
git push origin test-new-headline
# Preview URL: test-new-headline-yourproject.vercel.appUse cases for preview deployments:
- Testing copy changes. Write a new headline, push to a branch, share the preview URL for feedback before merging.
- Screenshot updates. Add new app screenshots, verify they look correct on the preview, then merge.
- A/B test setup. Test your A/B testing implementation on a preview deployment before rolling it out to production. For more on A/B testing, see our A/B testing guide.
- Major redesigns. Work on a redesign in a branch, share the preview with stakeholders, iterate, and merge when ready.
How Do You Optimize Performance on Vercel?
Vercel provides excellent performance by default, but there are additional optimizations specific to app landing pages:
Enable Vercel Speed Insights
Vercel offers built-in performance monitoring that tracks Core Web Vitals for real users:
# Install the package
npm i @vercel/speed-insights
# Add to your layout
import { SpeedInsights } from '@vercel/speed-insights/next'
export default function Layout({ children }) {
return (
<html>
<body>
{children}
<SpeedInsights />
</body>
</html>
)
}This tracks LCP, CLS, INP, and other Core Web Vitals for every real visitor. Data appears in your Vercel dashboard under "Speed Insights."
Configure Caching Headers
For static app landing pages, configure aggressive caching in your next.config.js:
// next.config.js
module.exports = {
async headers() {
return [
{
source: '/:path*',
headers: [
{
key: 'Cache-Control',
value: 'public, max-age=3600, s-maxage=86400, stale-while-revalidate=86400',
},
],
},
{
source: '/screenshots/:path*',
headers: [
{
key: 'Cache-Control',
value: 'public, max-age=31536000, immutable',
},
],
},
]
},
}Screenshots and icons rarely change, so they can be cached aggressively (1 year). Page content gets a shorter cache with stale-while-revalidate for fast subsequent loads.
Use Next.js Image Optimization
Vercel includes built-in image optimization for Next.js. Replace <img> tags with the Image component for automatic WebP conversion, responsive sizing, and lazy loading:
import Image from 'next/image'
<Image
src="/screenshots/hero.png"
alt="App home screen"
width={375}
height={812}
priority // Preload hero image for better LCP
className="rounded-2xl"
/>How Much Does Vercel Cost for an App Landing Page?
For most app landing pages, Vercel's free Hobby tier covers everything:
| Feature | Hobby (Free) | Pro ($20/mo) |
|---|---|---|
| Bandwidth | 100 GB/month | 1 TB/month |
| Deployments | Unlimited | Unlimited |
| Custom domains | Yes | Yes |
| HTTPS | Automatic | Automatic |
| Preview deployments | Yes | Yes |
| Analytics | Basic | Advanced |
| Team members | 1 | Unlimited |
| Image optimization | 1,000 images/month | 5,000 images/month |
100 GB of bandwidth handles approximately 500,000 to 1,000,000 page views per month for a typical app landing page. Unless your app goes viral, the free tier is sufficient indefinitely.
What Are Alternatives to Vercel?
While Vercel is my top recommendation, here are alternatives if you have specific requirements:
- Netlify. Similar to Vercel with a generous free tier. Slightly less optimized for Next.js but works well for static exports. Good choice if you already use Netlify for other projects.
- Cloudflare Pages. Excellent performance with Cloudflare's global network. Free tier includes unlimited bandwidth. More complex setup for Next.js server features.
- AWS Amplify. Good if you are already in the AWS ecosystem. More complex configuration but offers fine-grained control.
- GitHub Pages. Free but only supports static HTML. Requires exporting your Next.js site as static (
output: 'export'in next.config.js). No server-side features.
For app landing pages specifically, Vercel's combination of zero-config deployment, free custom domains, and optimal Next.js performance makes it the clear winner.
How Do You Deploy an AppLander-Generated Page?
If you generated your landing page with AppLander, deployment to Vercel is identical to any Next.js project:
# After generating your AppLander site:
cd my-app-landing
# Option 1: CLI deploy
vercel --prod
# Option 2: Push to GitHub and connect to Vercel
git init
git add .
git commit -m "AppLander generated landing page"
git push origin main
# Then import the repo at vercel.com/newAppLander projects are standard Next.js applications with no special Vercel configuration needed. The build output is optimized for static generation, so deployments are fast and the resulting pages achieve near-perfect Lighthouse scores.
What Should You Do After Deploying?
Your landing page is live. Here are the immediate next steps:
- Verify your custom domain works. Open your domain in a browser and confirm HTTPS is active (green padlock).
- Submit to Google Search Console. Add your domain to Google Search Console, verify ownership, and submit your sitemap (
yourapp.com/sitemap.xml). - Test on real devices. Open the page on your iPhone, an Android phone, and a tablet. Check that everything looks correct and the download buttons link to the right App Store page.
- Set up monitoring. Add Vercel Speed Insights (as shown above) and your chosen analytics tool. You want to track performance and traffic from day one.
- Run Lighthouse. Open Chrome DevTools, go to the Lighthouse tab, and run a test. Target 90+ on all four categories: Performance, Accessibility, Best Practices, SEO.
Ready to Deploy Your App Landing Page?
Deployment should not be the bottleneck in getting your app on the web. With Vercel, it is a single command. Build your page, deploy it, set up your custom domain, and get back to what matters — building and marketing your app.
If you have not built your landing page yet, AppLander generates a complete, deployment-ready Next.js site from your App Store URL. The generated project deploys to Vercel with zero configuration, so you go from App Store URL to live website in under 5 minutes.