From: Annie Brunner To: April & Tori DiGiannantonio Scope of this doc: the website (alpinecrossfit.com) only. Programming evaluator + chat assistant will be handed off in a follow-up.
The website is a static site built with Eleventy, hosted on Netlify, with a lightweight in-browser CMS (Decap) for content edits at /admin/. Every push to the main branch of the GitHub repo triggers Netlify to rebuild and republish, live in ~30 seconds.
Two editing paths:
Both paths eventually push commits to the same GitHub repo; you pick whichever fits the task.
Do these in order. Some steps depend on the one before it.
Annie has already transferred ownership of alpinecrossfit.com at the registrar. DNS records still point to Netlify. No action here unless the Netlify site moves in step 3 below.
Annie does:
April does:
Result: repo URL becomes https://github.com/{april's-username}/alpine-crossfit-site. All commit history, branches, issues, and settings come with it.
The cleanest path (avoids Netlify's site-transfer support tickets):
April creates a fresh Netlify site from the newly-transferred repo:
alpine-crossfit-sitealpine-crossfit-[random].netlify.appApril adds the custom domain:
6. Site → Domain management → Add a domain → alpinecrossfit.com
7. Netlify tells her what DNS records to set. She goes to the domain registrar and updates them (or if the domain is already on Netlify DNS, it's automatic).
Annie deletes her old Netlify site (once April's site is verified live): 8. Annie signs in to Netlify, finds the old site, Site settings → Delete this site.
Result: alpinecrossfit.com now points at April's Netlify. Annie is fully out.
The CMS editor at /admin/ uses Netlify Identity for login. Existing users (Annie, Megan, Lisa if she stays) don't automatically transfer.
April does:
Also: enable Git Gateway (this is what lets Decap CMS commit to the repo): 5. Identity → Services → Git Gateway → Enable → authorize with GitHub
Not part of this handoff — will be a follow-up:
script.google.com/... where coaches can ask questions about programmingOnly needed if she wants to use Claude Code for structural edits. Skip these if she only uses Decap CMS.
git config --global user.name "April DiGiannantonio" and git config --global user.email "april@..."Open Git Bash or PowerShell:
cd Documents
git clone https://github.com/[april's-username]/alpine-crossfit-site.git
cd alpine-crossfit-site
If all that works, she's set up.
→ Use Decap CMS. Go to alpinecrossfit.com/admin/, log in, click the collection, edit, save. Publishes automatically.
→ Use Claude Code (or ask someone with dev knowledge). Describe the change in plain English, Claude edits the code, commits, pushes.
→ Decap CMS has an image uploader inside relevant fields.
→ Netlify Dashboard → Deploys → find the last green "Published" deploy before the broken one → click Publish deploy to roll back. Then figure out what broke.
The netlify.toml caches /assets/* (including styles.css) as immutable for one year. When we change the CSS, returning visitors keep seeing the OLD version until they clear browser cache or open in incognito.
Fix pending — either drop immutable from the cache header or add filename hashing (would need an Eleventy plugin). For now, when you change CSS, tell anyone testing to open in an incognito window.
There's an external automation ("Manus") that publishes daily stoic-themed blog posts. It occasionally generates two posts with the same title on different dates. When both hit the same URL slug, Eleventy's build fails with DuplicatePermalinkOutputError.
Fix: for each duplicate, add an explicit permalink to the newer post's front matter:
permalink: "/blog/[slug]-YYYY-MM-DD/"
This session fixed 16 existing collisions on 2026-08-19 (see commit e850366). Long-term: whoever runs Manus should add slug-collision detection before publishing.
Harmless. Git is normalizing line endings between Windows (CRLF) and the repo standard (LF). Just ignore.
Documents/Claude Practice/site folderOn Annie's laptop, there's a second folder at C:\Users\AnnieBrunner\Documents\Claude Practice\site that is NOT a git repo — it's an old snapshot. Do not use it. All work goes through Documents/alpine-crossfit-site-repo. April won't have this issue on her machine — she'll clone fresh.
If a deploy breaks the site:
If the repo becomes tangled:
git log --oneline -30 shows recent historygit revert [commit-hash] safely undoes a specific commitLast updated: 2026-08-19 by Annie + Claude Code