Building a website is only half the job — getting it live on the internet is the other half. Deployment can feel intimidating the first time, but in 2026 there are excellent tools that make it straightforward. This guide covers five methods, from completely free to professional-grade, with step-by-step instructions for each.
Before You Deploy: Checklist
- Test your site locally — all links work, images load, forms submit
- Check on mobile — use Chrome DevTools responsive mode
- Validate your HTML — validator.w3.org
- Compress images — use squoosh.app or TinyPNG
- Check page speed — pagespeed.web.dev
- Have your domain name ready (if using a custom domain)
Best for: Static websites, portfolios, project demos
GitHub Pages hosts static websites directly from a GitHub repository. It's completely free, includes HTTPS, and gives you a URL like username.github.io/repo-name.
Steps:
- Push your website files to a GitHub repository
- Go to Settings → Pages in your repository
- Under "Source," select "Deploy from a branch"
- Choose the
mainbranch and/ (root)folder - Click Save — your site will be live in 1–2 minutes
Best for: React, Next.js, Vue, static sites — anything with a build step
Vercel is the gold standard for deploying modern web apps. Connect your GitHub repo and Vercel automatically deploys every time you push code. It includes a global CDN, automatic HTTPS, and preview deployments for every pull request.
Steps:
- Sign up at vercel.com with your GitHub account
- Click "Add New Project" and import your repository
- Vercel auto-detects your framework (React, Next.js, etc.)
- Click Deploy — done in under a minute
- Add a custom domain in Project Settings → Domains
# Or deploy via CLI
npm install -g vercel
vercel login
vercel --prod
Best for: Static sites, JAMstack apps, sites with forms and serverless functions
Netlify is similar to Vercel but with some unique features: built-in form handling (no backend needed for contact forms), identity/auth, and A/B testing. The free tier is generous for personal projects.
Steps:
- Sign up at netlify.com
- Drag and drop your project folder onto the Netlify dashboard — it deploys instantly
- Or connect your GitHub repo for continuous deployment
- Configure your build command and publish directory
Best for: WordPress sites, PHP applications, business websites
Shared hosting is the traditional way to host websites. Providers like Hostinger, SiteGround, and Bluehost give you a cPanel dashboard to manage files, databases, and email. It's affordable and works well for WordPress.
Steps:
- Buy a hosting plan and domain from Hostinger or similar
- Log into cPanel and open File Manager
- Navigate to
public_htmlfolder - Upload your website files (or use FTP with FileZilla)
- For WordPress: use the one-click installer in cPanel
Best for: Node.js, Python, Django, custom backends, high-traffic sites
A VPS gives you a virtual server with full root access. You install and configure everything yourself. It's more work but gives you complete control. DigitalOcean, Linode (Akamai), and AWS Lightsail are popular choices.
Basic setup for a Node.js app:
# SSH into your server
ssh root@your-server-ip
# Install Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
# Install Nginx as reverse proxy
apt-get install nginx
# Install PM2 to keep your app running
npm install -g pm2
# Clone and start your app
git clone https://github.com/you/your-app.git
cd your-app
npm install
pm2 start server.js --name "myapp"
pm2 startup
Which Method Should You Use?
- Student portfolio / static site → GitHub Pages (free, easy)
- React / Next.js app → Vercel (best DX, free tier is generous)
- WordPress business site → Shared hosting (Hostinger is good value)
- Node.js / Django backend → VPS or Railway.app
- Full-stack app with database → Railway, Render, or VPS
Adding a Custom Domain
Once deployed, you'll want a custom domain instead of username.github.io. The process is similar for all platforms:
- Buy a domain from Namecheap or GoDaddy
- In your hosting platform, add the custom domain
- The platform gives you DNS records (usually an A record or CNAME)
- Add those records in your domain registrar's DNS settings
- Wait 10–60 minutes for DNS propagation
All the platforms above provide free SSL certificates automatically once your domain is connected.
Continuous Deployment
The best deployment workflow is continuous deployment: every time you push code to GitHub, your site automatically rebuilds and deploys. Vercel and Netlify do this out of the box. It means you never have to manually upload files — just git push and your changes are live in seconds.