PRD: Add real testimonials to the FootballGPT page on 360tft.co.uk
Honesty artifact
Assumptions taken on faith: that /footballgpt/ (footballgpt.md, the active, indexed page)
is the correct page to edit rather than the legacy /football-gpt/ page (football-gpt.md,
exclude_from_nav: true, sitemap: false) — confirmed by grep (only footballgpt.md carries
real page content and SEO metadata; football-gpt.md is a smaller, hidden stub) but not by
checking live analytics for which URL actually gets traffic. That the existing
_includes/testimonials.html include was safe to extend is based on it being referenced
nowhere else in the repo (grepped: the only match was its own usage comment) — so extending it
carries no risk of changing how testimonials_kevin/academy/compass render elsewhere, since
nothing currently calls the include at all on any live page. The pre-existing field-name
mismatch in that include (testimonial.text/testimonial.author vs the data files’ actual
quote/name fields) was a latent bug, not something this PRD was asked to fix — fixed here
only because the include otherwise could not render the new footballgpt source, via a
| default: fallback that does not change behaviour for any existing caller (there are none).
Known gaps: verified locally only, via a jekyll/jekyll:4 Docker build against this
branch — real Jekyll build, real Liquid rendering, real quote text confirmed in the output
HTML (see PR description for the exact rendered snippet). Not verified against the live site’s
actual Ruby/gem versions or GitHub Pages’ own build environment, and not verified against a
real production deploy — that only happens once Kevin merges this PR. wall-of-wins.md (716
lines, the site’s dedicated testimonials showcase page) and products.md (the products
overview page) were checked and also carry zero FootballGPT-specific social proof — both are
noted below as follow-up candidates but are explicitly out of scope for this PRD to avoid
scope creep on a single content ask.
Expected Experience
- Job: a visitor on
360tft.co.uk/footballgpt/sees real coach quotes before reaching the pricing section, not just a “trust badge” stat block. - Peak moment: the Ian McClurg card — an unsolicited, dated, verified coach educator’s post — landing right above the pricing decision.
- Visual bar: matches the page’s existing dark/purple (
#976bdd) card language (feature cards, pricing cards already use this pattern); testimonial cards use the same rgba-background + border-radius treatment already established on this page. - Copy bar: verbatim quotes only, British English surrounding copy (“Real quotes from real coaches — nothing here is written by us”), no invented statistics.
- Never-list: never render a register entry whose
statusis notready; never edit a quote’s wording; never let the section look different in visual weight from the rest of the page (no unstyled default browser list/box). - Proof required: the actual rendered HTML (captured via local Docker Jekyll build, see PR) and, before this PRD is marked Shipped, the live production page after Kevin merges and GitHub Pages redeploys.
Shareable? Not the primary goal here (this is 360tft.co.uk’s own proof section, not a
generated card), but a coach named in it (Ian McClurg, Marc M., James Styles) could
reasonably link to the page. Embarrassing if wrong? Yes — an empty or visually broken
testimonial block, or one that accidentally rendered a needs-permission quote, would be
exactly the kind of basic live-demo failure the Head of Testing standard exists to catch.
Why / What / Scope
See the companion PRD in the hub repo for the full rationale:
360tft-hub/docs/prd/FootballGPT_P2_2026-08-05-testimonial-register-surfacing.md (covers both
this site change and the separate footballgpt.co landing-page/paywall change, which is
Codex-owned and not part of this repo).
In (this repo, this PRD): _data/testimonials_footballgpt.yml (9 READY entries mirrored
from 360tft-hub/data/testimonials.json), extending _includes/testimonials.html with a
source="footballgpt" branch, and a new “What Coaches Are Saying” section on
footballgpt.md placed before the pricing section.
Out: football-gpt.md (legacy hidden page), wall-of-wins.md, products.md — all three
also lack FootballGPT-specific social proof and are reasonable follow-up candidates for the
same treatment, but are not touched here to keep this change to one page.
Proof before Shipped
Live 200 on https://360tft.co.uk/footballgpt/ with the “What Coaches Are Saying” section
visible and rendering real quotes, confirmed after Kevin merges the PR and the site redeploys.