$ day-2 --am · session recap

Day 2 AM Recap — Building and Deploying with Claude Code Web

A follow-along morning spent entirely in Claude Code for the Web — building and deploying real GitHub projects from the browser, with no local install — and previewing the CLI “power tool” version for later in the week. We picked up the Day 1 capstone and worked through it together as a group, then ran a second image-based build from scratch.

A live GitHub outage shaped the session: for much of the morning Claude Code Web’s GitHub connector returned 403 / “no write access” errors for most participants, traced to an active connector bug likely aggravated by Canadian-IP security restrictions at DHSI. The unplanned fix — a Personal Access Token — turned into one of the morning’s most useful lessons.

Setup and core concepts

Demo A — An academic portfolio site from an empty repo

The group rebuilt a “final portfolio project”–style site agentically, from nothing. Prompt: help plan an academic portfolio website for a digital humanities / game studies scholar — responsive, with a cute palette, p5.js animation, and an overall playful aesthetic.

The GitHub outage → Personal Access Token workaround

When most participants hit 403 “no write access” errors, the instructors walked through a durable fix that also teaches a foundational web concept. The Claude↔GitHub connector (an OAuth bridge) was failing to grant push rights; new connections only got read access.

  1. GitHub → Settings → Developer Settings → Personal access tokens → Tokens (classic) → Generate new token. Name it and set an expiration.
  2. Grant two scopes: repo (read/write the repository) and workflow (so it can trigger the GitHub Pages deploy, which runs as a workflow on push to main). The token is shown only once — copy it immediately and revoke/rotate it if ever exposed.
  3. In Claude Code Web, store it as an environment variable (e.g., GITHUB_PERSONAL_ACCESS_TOKEN) via the chat’s Edit Environment menu, rather than pasting it into the chat where compaction could lose it or it could leak. Claude then uses the value by name without printing the secret.
  4. Tell Claude to use the token in the environment to push to the repository.

Concepts taught along the way: OAuth vs. raw tokens, token scoping, .env files and the NAME=value format, and secret hygiene. After the token, deployment followed the Day 1 steps: Settings → Pages → Deploy from a branch → select the branch that actually has content, then the About gear → Use your GitHub Pages website for the URL — plus the familiar index.html/404 rule and waiting for the brown dot to go green.

Demo B — A butterfly image slideshow (the “Image Metadata” demo)

To show working from an existing repo and with visual data, the session built a slideshow from images.

Tooling notes


Through-line of the session: even with a real outage derailing the plan, the morning reinforced the week’s pedagogy — plan before you build, prototype small before scaling, and review every change (sub-agent commands, plans, diffs, pull requests). The connector bug, the token workaround, and the hallucinated course list all became teachable moments rather than failures.