Career Engine
0 / 17 steps
Bonus · GitHub Pages

Build & publish a portfolio webpage

0 / 5 done

Your CV gets you shortlisted. A portfolio gets you remembered. Here's how to put a simple HTML, CSS and JS site live on the internet — for free — in about ten minutes.

Go to github.com and sign up if you don't already have an account. Pick a clean, professional username — it becomes part of your live web address.
Click the + icon top-right → New repository. You have two options:
  • Main personal site: name it exactly yourusername.github.io (replace with your real username)
  • Project site: name it anything, e.g. my-portfolio
Set it to Public, then click Create repository.
Keep your project organised into separate files, the same way this guide is built:
  • index.html — your markup and content
  • css/ — your visual design
  • js/ — any interactivity
Drag and drop your files into the repository through Add file → Upload files on the GitHub website, or push them with Git from your computer if you're comfortable with the command line. Keep index.html in the root folder — not inside a subfolder — so GitHub Pages finds it automatically.
In your repository, go to Settings → Pages (under "Code and automation" in the left sidebar). Under Build and deployment, set Source to Deploy from a branch, choose branch main and folder / (root), then click Save.
Wait one to two minutes for the first build, then open your link:
  • Main personal site → https://yourusername.github.io
  • Project site → https://yourusername.github.io/repository-name
Every time you push a change to main, the live site updates automatically within a minute or two.

What belongs on the page

A short hero intro, a skills section, 2–4 real projects with links, and a simple way to reach you. That's a complete portfolio.

Want your own domain?

Add a CNAME file containing your domain, or enter it under Settings → Pages → Custom domain, then point your DNS at GitHub.

One repo, endless updates

You never re-create the site. Just edit your files and push — GitHub Pages rebuilds it for you, every time.