Source repository for GitHub Pages. Everything here is static and public — no secrets belong in any committed file.
| File | What it is |
|---|---|
index.html |
The published landing page |
interview.html |
"Interview Troy" — ask a question, hear the answer back in a cloned voice |
story-template.html, story-demo.html |
Untouched HTML5 UP Story template + demo, kept for reference |
Serve the repo over HTTP (not file://, so fetch and localStorage behave normally):
python3 -m http.server 8000interview.html calls the deployed services API, which is the only base URL hardcoded in the
page. To develop against another instance, set the override once — it is recorded in
localStorage at page load and reused on every later visit, so the URL only has to carry it the
first time. The value is a plain URL and does not need to be encoded.
http://localhost:8000/interview.html?base=https://your-instance.example
http://localhost:8000/interview.html#base=https://your-instance.example
The #base= form is there because some setups drop the query string on navigation. If both are
inconvenient, set it straight from the browser console — this is the one path nothing can strip:
localStorage.setItem("interview-troy.base-url", "https://your-instance.example"); // then reload
localStorage.removeItem("interview-troy.base-url"); // back to deployedOn localhost the page logs which base it is calling ([interview] calling …) to the console at
startup, so you can confirm the override took.
The override only works on localhost. On the published site the parameter is ignored, so a crafted link cannot repoint a visitor's browser at another server. The development instance's hostname is deliberately not recorded anywhere in this repository.
The page needs both /llm/ and /tts/ from that base, and the API must allow cross-origin
requests from wherever the page is served.