Do not rename or restructure this folder. Every file in it is referenced by absolute URL from somewhere outside this repo — most importantly from the LinkedIn posts the 18 pilot graduates made in May 2026.
| Contents | Count |
|---|---|
Certificate pages cp-2026-XXXXXX.html |
20 |
Matching share images cp-2026-XXXXXX.png |
20 |
Matching cp-2026-XXXXXX.pdf |
20 |
lyric-logo.png, og-default.png |
2 |
| Total | 62 files, 4.6 MB |
Generator scripts live in ../pilot/certificates/scripts/
(generate_share_cards.py, generate_pdfs.py). The template is
../pilot/certificates/crescendo_certificate.html. The name roster is
../pilot/certificates/cohort_certificates.md, which is gitignored on purpose —
it lists cohort members by name and is not for public hosting.
These files, plus the generator and template in ../pilot/certificates/, contain
89 hardcoded https://lyriccrescendopilot.tech/... URLs:
| Where | Count | What it is |
|---|---|---|
cert/cp-2026-*.html |
40 | …/cert/cp-2026-XXXXXX.png — the og:image / twitter:image tags. These render the preview card in a LinkedIn post. |
cert/cp-2026-*.html |
40 | …/cert/cp-2026-XXXXXX.html — canonical and share URL on each page |
cert/cp-2026-*.html |
2 | …/cert/og-default.png |
../pilot/certificates/scripts/generate_share_cards.py |
3 | Templated …/cert/{slug_id}.html and .png — the generator itself mints the dead domain, so any future certificate is born broken |
../pilot/certificates/crescendo_certificate.html |
1 | Self-referencing example link |
../pilot/certificates/linkedin_certification.md, cohort_certificates.md |
3 | The bare domain in graduate-facing instructions |
One further wrinkle: the template used to live at /crescendo_certificate.html
at the domain root and now sits at pilot/certificates/. Any URL of the form
…/crescendo_certificate.html?name=… needs its path updated too, not just its host.
Copying this folder to a new host without rewriting those URLs produces pages that still point at a dead domain: the certificates will load but their share cards and canonical links will 404.
lyriccrescendopilot.tech currently resolves to GitHub Pages
(185.199.108–111.153) via the repo’s CNAME file. The moment either the CNAME
is deleted or the DNS records are pulled, every certificate link in every
graduate’s LinkedIn post 404s.
Do it in this order:
CNAME.# from the repo root, with NEWBASE set to the new host (no trailing slash)
NEWBASE="https://certificates.lyric.tech"
grep -rl 'https://lyriccrescendopilot.tech' cert/ pilot/certificates/ \
| xargs sed -i '' "s|https://lyriccrescendopilot.tech|$NEWBASE|g"
# verify nothing was missed
grep -rn 'lyriccrescendopilot' cert/ pilot/certificates/ || echo "clean"
(sed -i '' is the macOS form. On Linux use sed -i.)