Holli Companions
Architecture & Maintenance
The Holland Clinic — Internal Reference
April 2026
companions.thehollandclinic.com
Netlify · GitHub

1. What this is

Holli is The Holland Clinic's digital assistant. She runs as a series of companion pages — each one a single self-contained HTML file — all served from one Netlify site. The same GitHub repository holds every file. Netlify watches the repository: when a file changes and is saved (committed) to GitHub, the live site updates automatically within about 60 seconds. No command line required.

Holli Intake Live

Guides new patients through eight health questionnaires before their first consultation. Saves to Google Sheets.

companions.thehollandclinic.com/holli-intake

Holli Referral New

Guides a referrer through a short conversation and generates a personalised introduction letter as a downloadable HTML file.

companions.thehollandclinic.com/holli-referral

2. Repository folder structure

The GitHub repository is named thehollandclinic-companions. Every file sits in the root — no subfolders except for the Netlify functions. This is the complete structure:

thehollandclinic-companions/
├── holli-intake.html ← patient intake companion
├── holli-referral.html ← referral companion (new)
├── holli-logo.svg ← THC Symbol 15 — shared by all companions
├── netlify.toml ← routing, headers, function timeout — do not edit
└── netlify/functions/
    ├── chat.js ← Anthropic API proxy — shared by all companions
    └── save-session.js ← Google Sheets writer — intake only

Rule: Every new Holli companion is one HTML file added to the root. Nothing else changes.

3. File naming and URLs

The filename becomes the URL path automatically. No configuration needed.

File in GitHubLive URLPurpose
holli-intake.html/holli-intakePatient health intake
holli-referral.html/holli-referralReferral letter generator
holli-[name].html/holli-[name]Future companions follow the same pattern

4. First-time GitHub + Netlify setup

Do this once. After this, everything is maintained through GitHub alone.

1
Create the GitHub repository Log in at github.com. Click New. Name it thehollandclinic-companions. Set to Private. Tick "Add a README". Click Create repository.
2
Upload all files In the new repo, click Add file → Upload files. Drag in everything listed in Section 2. Click Commit changes.
3
Link Netlify to the repository In Netlify, open the companions site. Go to Site configuration → Build & deploy → Link repository. Choose GitHub, authorise, select thehollandclinic-companions. Set publish directory to . (a single dot). No build command. Save.
4
Confirm the ANTHROPIC_API_KEY is set In Netlify: Site configuration → Environment variables. Confirm ANTHROPIC_API_KEY exists. It was set previously — this is just a check.
5
Test Visit companions.thehollandclinic.com/holli-intake and /holli-referral. Both should load and Holli should respond within a few seconds.

5. Making updates — from any device

Once GitHub is connected to Netlify, you never need the command line again. All updates go through github.com in a browser.

1
Open the file in GitHub Go to github.com → thehollandclinic-companions. Click the file you want to edit (e.g. holli-referral.html).
2
Edit it Click the pencil icon (Edit this file). Make your changes — update copy, adjust the system prompt, change a URL, etc.
3
Commit the change Scroll to the bottom. Add a short description if you like (e.g. "Update referral CTA copy"). Click Commit changes. Done.
4
Netlify deploys automatically Within 30–60 seconds the live site reflects the change. You can watch the deploy progress in Netlify → Deploys.

To add a new companion: Upload a new holli-[name].html file to the repo root. It goes live at companions.thehollandclinic.com/holli-[name] automatically.

To upload a replacement file (e.g. a new version Claude has generated): In the repo, click Add file → Upload files. Upload the new file with the same name. GitHub replaces it. Netlify deploys.

6. What not to change

FileWhy to leave it alone
netlify.tomlControls routing, security headers, and the 26-second function timeout. Changing it can break all companions.
chat.jsThe Anthropic API proxy. All companions depend on it. Only change if the API version needs updating.
holli-logo.svgShared by all companions. If updated, all companions update simultaneously — which is usually correct, but worth knowing.

7. Holli design consistency rules

Every companion built for Holli follows these rules so they look and feel like the same person.

ElementSpecification
HeaderDeep teal #1e3f3f · 80px tall · logo 60×60 left · "Holli" in Cormorant 22px cream centre · subtitle in small uppercase · sticky top
Holli's nameAlways "Holli" — not Holly, not HOLLI
Holli's bubblesWhite or #1e3f3f background depending on companion · teal text · rounded 2px/12px
User bubblesTeal #1e3f3f background · cream text · rounded 12px/2px
BackgroundWarm cream #faf5e7
HeadlinesCormorant serif
Body copyMontserrat 300 weight
Primary buttonTeal background · cream text · 2px border radius · uppercase 11px Montserrat 600
API call/.netlify/functions/chat · 24-second abort timeout · last 40 messages only