UGC Reactions from Real Creators
실제 크리에이터 영상은 11달러, 이미지 8달러. 맞춤 제작은 영상당 25달러부터, 최소 250달러, 상업 라이선스 포함
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Internal tool for searching Heights' Trustpilot and Okendo customer reviews.
pip install -r requirements-dev.txt # local dev (adds Flask + gunicorn)
cp .env.example .env # then fill in the tokens
python3 server.py
Production (Vercel) only installs
requirements.txt— a minimal set coveringbuild.pyand theapi/serverless functions. Flask is only needed for the local dev server, so it lives inrequirements-dev.txt.
Then open http://localhost:3000.
| Variable | Required | Notes |
|---|---|---|
OKENDO_API_KEY | yes | Okendo store key (pre-set for Heights in .env.example). |
SLACK_TOKEN | yes (for Trustpilot reviews) | Slack bot token with channels:history for #trustpilot_reviews. |
ANTHROPIC_API_KEY | yes (for Campaign Match) | See below. |
CACHE_TTL_MINUTES | no | Default 60. |
PORT | no | Default 3000. |
ANTHROPIC_API_KEY — Campaign MatchThe "Campaign Match" panel on the main page calls the Anthropic Messages API to
score reviews against a campaign brief. The feature is disabled (returns a
graceful error) if ANTHROPIC_API_KEY is not set.
.env file.Get a key at https://console.anthropic.com/settings/keys.
| Built by | Fil Bell, March–May 2026 |
| Current owner | Fil Bell |
| Backup owner | unassigned — needs filling in |
| Escalate to | to be set |
| Who consumes the output | Customer care and marketing, searching reviews ad hoc |
Why it is public: the site is served by GitHub Pages, and Pages from a private repo requires GitHub Team or above. On a free personal account, public was the only way to make it work. It was a structural constraint, not an oversight.
What that means in practice:
https://filbell.github.io/heights-review-tool/ is live
and world-readable (~5.7 MB), rebuilt hourly by build.yml.build.py embeds the whole review corpus into dist/index.html as inline JSON
(window.__HEIGHTS_REVIEWS__), including reviewer display names.OKENDO_API_KEY was committed in .env.example in this public
repo. It has been replaced with a placeholder, but it remains in git
history, so the only real fix is to rotate that key. heights-voc uses
the same credential and its Actions secret must be updated at the same time.Two ways out:
| Option | Cost | Notes |
|---|---|---|
| Upgrade the org to GitHub Team | $4/user/month | Pages from a private repo; keeps everything as-is otherwise |
Move hosting to Vercel behind Google @heights.com auth | £0 | The pattern already used by benchmarking-insights and growth-partnership-dashboard. Make the repo private, turn Pages off. |
The second is cheaper and gives real access control, which the current setup has
no way to express. vercel.json already exists in this repo.
| Trigger | GitHub Actions cron 0 * * * * — hourly, plus on push to main |
| Entry point | build.py → dist/, deployed to GitHub Pages |
| Local dev server | server.py (Flask) — not used in production |
| Typical duration | ~1m20s |
| Billable cost | £0 today — Actions is free for public repos. Making this repo private without moving off Pages would add ~1,440 billable minutes/month, more than the entire free allowance. |
| Direction | System | Notes |
|---|---|---|
| Reads | Okendo API | all Heights reviews |
| Reads | Slack #trustpilot_reviews | Trustpilot reviews, via channels:history |
| Writes | GitHub Pages | the public static site |
| Writes | This repo | dist/index.html is committed |
| Secret | Stored as | Notes |
|---|---|---|
OKENDO_API_KEY | Actions secret | rotate — was committed publicly |
SLACK_TOKEN | Actions secret | named SLACK_BOT_TOKEN in six other repos; standardise on handover |
ANTHROPIC_API_KEY | Vercel / local only | Campaign Match; feature degrades gracefully without it |
How you find out
build.yml has no failure alert. Add the standard one from
heights-standards/failure-alert.yml.dist/ stays deployed, a failed build leaves a working
but increasingly stale site. There is no visible symptom.What breaks downstream, and how urgent
How to diagnose
not_in_channel → bot removed from #trustpilot_reviews.github-pages environment.Is a re-run safe?
dist/ from scratch and
redeploys. No external writes, no state to corrupt.How to recover
If nobody can fix it
| Date | Change | By |
|---|---|---|
| 2026-09-07 | Brought to the Heights README standard; real Okendo key replaced with a placeholder in .env.example; public-repo/Pages constraint documented | Fil |