Creating a Resume Site with GitHub Pages
I built this blog on GitHub Pages, and along the way I realized how well this approach works for a personal resume or portfolio site. If you’re looking to create a resume site, with a custom URL to show off your work portfolio is worth the two hours it takes to set up, especially when it’s almost free.
Here’s exactly how I’d do it today.
Why GitHub Pages?
There are plenty of ways to host a personal site. WordPress, Squarespace, Wix — they all work. But GitHub Pages has a few things going for it:
- Free hosting with a
username.github.ioURL (or your own custom domain) - Version-controlled content — your site lives in a Git repo like everything else
- Jekyll support built-in, meaning you can use themes without running a build pipeline yourself
- No lock-in — it’s just markdown files, you can move them anywhere
The trade-off is that it takes a bit more setup than a drag-and-drop site builder. But once it’s done, updating your resume is just editing a markdown file.
Step 1: Create the Repository
Go to GitHub and create a new repository named exactly:
username.github.io
Replace username with your actual GitHub username. This naming convention tells GitHub Pages to automatically serve the repository as a website at https://username.github.io.
Make it public — GitHub Pages is free for public repositories. If you want a private repo, you’ll need a paid plan.
Step 2: Choose a Theme
Jekyll has a huge ecosystem of themes. For my resume site, I used Minimal Mistakes: mmistakes.github.io.
Minimal Mistakes is greate if you want a portfolio + blog hybrid (which is what this site uses).
Most themes can be enabled via remote_theme in your _config.yml, which means no local build toolchain required.
Step 3: Configure _config.yml
This file controls your entire site. Here’s a minimal starting config using Minimal Mistakes:
title: "Resume"
permalink: /resume/
excerpt: "Senior Technical Product Manager with 15+ years experience in SaaS enterprise software for asset-intensive industries."
date: 2026-02-21
toc: true
toc_label: "Contents"
toc_icon: "list"
A few things worth considering:
title: This shows in browser tabs and search results. Put your name and role here.author.bio: Keep it short and human. This shows in the sidebar on every page.links: Add LinkedIn, GitHub, Twitter/X, or whatever is relevant to your field.
Step 4: Build Your Resume Page
Create a file at _pages/resume.md. This will be your main resume page:
---
title: "Resume"
permalink: /resume/
layout: single
author_profile: true
---
## Experience
**Senior Product Manager** — Acme Corp *(2022–Present)*
- Led cross-functional teams to ship X, resulting in Y
- Defined roadmap for Z product line
**Product Manager** — StartupCo *(2019–2022)*
- Launched MVP of core feature in 3 months
- Grew active users from 10k to 80k in 18 months
## Education
**B.S. Computer Science** — Carroll University
## Skills
Product strategy, roadmapping, Agile/Scrum, SQL, Figma, user research
Then add it to your navigation in _data/navigation.yml:
main:
- title: "Home"
url: "/"
- title: "Resume"
url: "/resume/"
Step 5: Enable GitHub Pages
In your repository settings:
- Go to Settings → Pages
- Under Source, select Deploy from a branch
- Choose
mainbranch,/ (root)folder - Click Save
GitHub will build and deploy your site in about a minute. You’ll see the live URL at the top of the Pages settings screen.
Step 6 (Optional): Add a Custom Domain
If you want www.yourname.com instead of username.github.io:
- Buy a domain from Namecheap, Google Domains, or wherever you prefer
- In your repo, add a file named
CNAMEcontaining just your domain:www.yourname.com - In your DNS settings, add a
CNAMErecord pointingwwwtousername.github.io - For the apex domain (
www.yourname.com), addArecords pointing to GitHub’s IPs: Find them here: Manage a custom domain GitHub documentation - Back in GitHub Pages settings, enter your custom domain and enable Enforce HTTPS
- [optional] Add a redirect from
yourname.comtowww.yourname.com.- In my registry I was unable to add a redirect for the apex domain, so I added a redirect for the
wwwdomain toyourname.comusing a S3 bucket.
- In my registry I was unable to add a redirect for the apex domain, so I added a redirect for the
DNS changes can take up to 24 hours to propagate, but it’s usually much faster.
Tips and Gotchas
- Keep content in
docs/if you want to separate your site source from any other files in the repo root. Set your GitHub Pages source todocs/instead of/. - Images: Put them in
/assets/img/and reference with/assets/img/your-image.jpg. Avoid absolute external URLs — they’ll break if the source moves. - Drafts: Files in
_drafts/won’t publish. Great for working on posts before they’re ready. - Local preview: Install the
github-pagesgem and runbundle exec jekyll serveto preview locally before pushing. It saves a lot ofgit pushcycles.
My Takeaway
A GitHub Pages resume site takes a couple of hours to set up, but it pays off. It’s a real URL you control, it’s fast, and it’s one less subscription to pay. If you’re already comfortable with Git and markdown, the editing workflow feels completely natural.
The main investment is picking the right theme upfront — it’s easier to start with one that fits your use case than to switch later. Spend some time looking at options before committing.
If you’re building a site similar to this one and run into questions, the Minimal Mistakes documentation is excellent.