learn-github-with-phoebe / Session 5 of 6
Learn GitHub with Phoebe · Session 5 of 6 · Non-tech track

Publish with GitHub Pages: your handbook goes live on the internet

The payoff session. Four sessions of repo, markdown, issues and pull requests turn into a real website today - free, at a real URL you can send to anyone. Settings → Pages → Save is genuinely most of it. And because every merge republishes, the PR flow you learned in Session 4 quietly becomes a publishing pipeline.

🟠 Stretch Non-tech professionals Browser only 45 min live + self-study
0-3 · Welcome 3-18 · Concepts 18-40 · Apply-along 40-45 · Q&A
Part 0

From repo to real website, without writing a website

Everything you have built so far - the handbook repo (Session 2), the board (Session 3), the PR flow (Session 4) - was already valuable inside your team. Today it faces the world: GitHub Pages converts your markdown into a website and hosts it for free, forever, at username.github.io/repo-name. This course itself is served exactly that way. The only new skill is knowing which settings page to visit and what "deploy" means when you watch it happen.

Live - presented in session Self-study - read after class ★ Apply-along - in your browser, everyone does it Running artifact: your own handbook repo
★ What you walk out with today Your handbook live at a real URL you can send to a colleague tonight, a theme applied with a two-line file, and the mental model that every merge republishes - so the review flow from Session 4 is now your publishing pipeline. You leave this session with a website.
Part 1 · free hosting in every repo

What Pages is 4 min live

GitHub Pages is free website hosting built into every repository. The whole activation: Settings → Pages → pick a branch → Save. About a minute later your markdown files are a website at username.github.io/repo-name.

Your repo README.md + pages, plain markdown Pages build converts + publishes, ~60 s, green check ✓ Live website username.github.io/ team-handbook every merge republishes your Session 4 PR flow is now a publishing pipeline Deploy = GitHub converts your files and pushes them to the web. You watch it as a green check in the Actions tab.
🔍 Click to zoom - markdown in, website out, and the loop that keeps it fresh
LiveWhat "deploy" means, in office terms2 min▶
  • Deploy = convert and publish. When you save the Pages setting (and after every future change), GitHub takes your markdown, turns it into web pages, and pushes them to its servers. It takes about 60 seconds; you can watch the progress in the repo's Actions tab and wait for the green check.
  • It re-deploys on every merge. Change a file on main - directly or via a PR - and the site updates itself a minute later. Nobody "uploads the new version"; the repo IS the website.
  • The URL is predictable: username.github.io/repo-name. Your repo's address on github.com and your site's address on github.io are two views of the same thing.
The mental flip After today, "update the website" stops being a request to a webmaster. It is a pull request - reviewed, merged, live in a minute, with the full Session 4 paper trail.
Self-studyReading the Actions tab without fear2 min read▶

The Actions tab is where deploys (and other automations - Session 6 territory) show their work. For Pages you only need three readings:

  • Yellow dot, spinning: the deploy is running. Sixty-ish seconds; go stretch.
  • Green check: published. Reload the live site and your change is there.
  • Red X: the build hit a snag - almost always a typo in _config.yml (a missing space after the colon is the classic). Click into the run, read the last few lines, fix the file, and the next commit retries automatically.

That is the entire literacy level you need. Session 6 turns this tab from "where deploys live" into a superpower you can read on any repo.

Part 2 · zero-code polish

Making it look good with zero code 5 min live

Out of the box, Pages renders your markdown plainly. One tiny file changes that: _config.yml, two lines, copy-paste provided. It is the ONLY configuration file in this entire course - and it is two lines.

_config.yml title: Team Handbook theme: jekyll-theme-cayman one new file, two lines - that is the entire configuration of this course Team Handbook same markdown, now wearing a theme
🔍 Click to zoom - the only config file in this course: two lines, whole new outfit
LiveHomepage, links and images - the rules you already know3 min▶
  • Your README (or an index.md) becomes the homepage. The front door you wrote in Session 2 is now literally the front page of a website. Same file, bigger audience.
  • Relative links just work. A markdown link to onboarding.md becomes a working link between pages on the live site. Link every page from the homepage and visitors can reach everything.
  • Images drag-dropped into the editor (Session 2's trick) appear on the site too. No upload manager, no media library - the repo is the media library.
  • Themes are swappable: change the theme line, merge, reload. Try cayman, minimal or slate before you settle.
Real world

You are looking at one right now. This course, and every learn-X-with-phoebe site, is a markdown repo served by GitHub Pages - same Settings page, same flow you will use in ten minutes. And beyond this room: thousands of documentation sites, team handbooks and personal portfolios you have visited are secretly Pages sites. It is one of the most-used publishing systems on the internet, hiding in a Settings tab.

Part 3 · when to reach for it

When Pages is the right tool 4 min live

Pages serves documents beautifully and does nothing else. Knowing the boundary keeps you out of trouble - and makes you sound very sharp in meetings.

LivePerfect for, wrong for, and the privacy check3 min▶
Perfect forWrong tool for
Team handbooks and internal docs made public-safeWeb apps with buttons that DO things
Portfolios and personal landing pagesAnything with logins or user accounts
Course sites (hello!) and documentationDatabases, forms that save data, shops
Project one-pagers and event pagesSites that must be private on the free plan

The pattern: Pages serves pages - words, images, links. The moment your idea needs to remember visitors or process input, that is real web hosting (and a chat with an engineer).

The one non-negotiable: the privacy check On the free plan, a Pages site is public even if the repo is private. Before you flip the switch, sweep your files for names, numbers, screenshots and anything internal. Apply-along 3's checklist makes this a habit.
Self-studyCustom domains + github.io URL anatomy2 min read▶
  • Custom domains exist: handbook.yourcompany.com can point at your Pages site - Settings → Pages → Custom domain, plus one record set by whoever manages your company's domain. The official docs walk through it (docs.github.com → Pages → custom domains).
  • URL anatomy: username.github.io/repo-name is a project site - every repo can have one. The special repo named exactly username.github.io becomes your profile site, served at the bare username.github.io. One per account; a natural home for a portfolio.
Apply-along 1 of 3

Ship it ★ 10 min · everyone goes live

The moment four sessions built toward. When your URL loads, post it in the room chat - we applaud every single one.

Open your handbook repo → Settings → Pages. Under Build and deployment, set Source to Deploy from a branch, pick main, folder / (root), and press Save.

Go to the Actions tab and watch the deploy run - about 60 seconds until the green check. That was a deploy; you just watched one happen.

Open username.github.io/team-handbook (the link also appears at the top of the Pages settings). Your handbook is on the internet. Post the URL in the room chat - applause moment.

Now fix one thing you immediately hate (there is always one) - but do it the Session 4 way: pencil edit → branch → PR → merge.

Watch Actions redeploy, reload the live site, see your fix. You just used a pull request as a publishing pipeline. That is the whole loop.

Apply-along 2 of 3

Theme it ★ 6 min · everyone styles

In your repo: Add file → Create new file. Name it exactly _config.yml (the underscore matters).

Paste the two lines:
title: Team Handbook
theme: jekyll-theme-cayman

Commit it straight to main this once (it is your repo's outfit, not its content). Wait for the green check in Actions, then reload the live site: header, colors, typography - a whole design, from two lines.

Not your style? Try jekyll-theme-minimal or jekyll-theme-slate - and make THIS change via a branch + PR, watching the site republish when you merge. Feel the publishing pipeline under your fingers.

Two lines is the whole config Jekyll (the engine behind Pages themes) can do far more - layouts, navigation, plugins. All of it is tech-track territory. Your two lines are deliberately the entire depth of this course, and they are enough for a genuinely good-looking handbook.
Apply-along 3 of 3

The go-live checklist ★ 6 min · everyone audits

Before you share that URL beyond this room, audit your own repo honestly. This checklist is reusable for every site you ever ship.

The debrief The privacy row is worth 3 points because it is the only mistake on this list you cannot fully take back - the other rows are polish, that one is protection. Run this checklist before every site you ever ship, not just today's.
After the session

This week ◐ 30 min total

Check yourself

Three questions before you go 🎯 ◐ 90 seconds

1 · Your Pages site is live. What makes it update?

The setting is one-time; after that, every change to main republishes in about a minute. Your PR flow IS the publishing pipeline.

2 · On the free plan, who can see your Pages site?

Public even if the repo is private. That is why the privacy row on the go-live checklist is worth triple points.

3 · Which of these is Pages the WRONG tool for?

Logins, forms that save data, databases = a real web application, which needs real hosting. Pages serves pages: words, images, links - and it serves them brilliantly.

Source material

Official GitHub Skills coverage

This course maps to GitHub's own free Skills exercises - each session tells you honestly what is covered here and what the official course adds.

✓GitHub Pages (skills/github-pages)the Settings → Pages path, deploy watching, _config.yml theme - Parts 1-2 + Apply-alongs 1-2
◐Jekyll / configuration depthone file, two lines here - layouts, navigation and plugins are tech track
◐Custom domainspointer only in the self-study card - the docs walk the full setup

Session 5 cheat sheet · pin this

Turn it onSettings → Pages → Deploy from a branch → main → Save. Live in ~60 seconds at username.github.io/repo-name.
DeployGitHub converts your markdown and publishes it. Watch the green check in the Actions tab.
The loopEvery merge to the publishing branch redeploys. PRs are your publishing pipeline now.
_config.ymlTwo lines: title + theme (try cayman, minimal, slate). The only config file in this course.
Right toolHandbooks, docs, portfolios, course sites = yes. Logins, databases, apps = real web hosting.
Privacy checkFree-plan Pages sites are PUBLIC, even from private repos. Sweep for names, numbers, screenshots first.