Skip to content

Add a /press fact sheet and say what DebateOwl is, and is not - #293

Merged
Programcode merged 1 commit into
mainfrom
t3/seo-task-c-press-brand
Nov 2, 2026
Merged

Programcode merged 1 commit into
mainfrom
t3/seo-task-c-press-brand

Conversation

@Programcode

Copy link
Copy Markdown
Owner

Task C from the 1 November spec plus the approved Task 3 from 31 October, in one PR. Google's AI Overview for "debateowl" described Owl AI on 31 October; this makes the brand explicit wherever search engines and answer engines read it.

What changed

  • New /press page, titled "DebateOwl press kit and facts | DebateOwl". It covers: a one-sentence definition ("DebateOwl is an AI debate prep and practice app for students and competitive debaters that…"), the former name (DebateLab at debate.pi-stack.org, renamed 27 October 2026), the maker (Adam, Programcode on GitHub, a student developer in Hungary, published by Pi-Stack), launch year (2026, as DebateLab), languages, pricing (3-day trial with no card, then $5/month + tax, no free plan), PNG and SVG logo downloads, a press contact email and a "Not to be confused with" line. There is no phone number or street address. The page is in English, Spanish and Hungarian, prerendered, in the sitemap with lastmod 2026-11-02, and linked from the footer and from /about.
  • The homepage subtitle is now "DebateOwl is an AI debate prep and practice app: build cases, find weak points and run timed rounds." The H1 is unchanged. In the built index.html, the first <p> is this sentence. Spanish and Hungarian got the same sentence in their own words. Nothing else on the homepage changed except its JSON-LD.
  • JSON-LD:
    • Organization gets sameAs, disambiguatingDescription ("DebateOwl is an AI debate prep and practice app for students, not a sports or computer-vision product.") and subjectOf pointing at the /press WebPage. url stays the homepage, because an Organization's url is its main site. I read "url/subjectOf" in the spec as subjectOf.
    • SoftwareApplication gets the same disambiguatingDescription.
    • /about and /press now carry the full Organization node, so sameAs is on / and /about as Task 3 asked.
  • /about has a one-line disambiguation ("DebateOwl is a debate app for students, not a sports or computer-vision product. The press kit has the short facts and the logo.") and a Press kit link.
  • llms.txt puts "It is not Owl AI (owl.ai), a computer-vision platform for sports." next to the existing debatelab.ai line, and lists /press and /llms-full.txt under Main pages. The text comes from scripts/generate_seo_content.py, and regenerating it changed only public/llms.txt.
  • /llms-full.txt is a build output. The new scripts/llms-full.mjs runs after the sitemap step and writes llms.txt followed by the visible <main> text of /, /about, /best-ai-for-debate and /press, taken from their built HTML. It always reflects the current pages, including the /best-ai-for-debate changes the other thread is making. Because it isn't an HTML page, it is not in sitemap.xml; llms.txt links to it, and check-site checks that link.

I did not touch /best-ai-for-debate, the homepage "Compare DebateOwl" row, or the static guide footers in generate_seo_content.py.

sameAs: which profiles and why

The rule was profiles that exist today, are named DebateOwl and are DebateOwl's own. Each candidate was checked on 2 November 2026.

  • I used https://github.com/Programcode/DebateOwl. It is public (200), titled "DebateOwl by Programcode - AI debate prep platform…", and its homepage field is debateowl.com.
  • I left out https://ainave.com/products/debateowl. It exists (200, named DebateOwl, listed 31 Oct 2026), but it's a third-party directory listing rather than DebateOwl's own profile, and its format list (Policy, BP, World Schools rounds) is broader than what Sparring runs today.
  • I couldn't verify Aitoolnet, Product Hunt, There's An AI For That, Futurepedia, Toolify and Crunchbase (all behind a Cloudflare challenge), and LinkedIn (999), so they are out. X and YouTube @debateowl return 404. The Instagram and TikTok debateowl handles return generic shells with nothing showing they belong to DebateOwl. If DebateOwl does run any of these, add the URL to organization.sameAs in src/config/site.json.

Claims about other products (checked 2 November 2026)

  • Owl AI: https://owl.ai/ describes itself as "Live Vision Intelligence for Sports", with computer-vision officiating and stats; the footer says "© OWL, 2026". The page calls it "a real-time computer-vision platform for sports" and llms.txt calls it "a computer-vision platform for sports".
  • debatelab.ai: https://debatelab.ai/ is titled "DebateLab - AI-Powered Debate Practice Platform". The page calls it "a separate debate practice product", the same wording the site already uses, and adds that DebateOwl was DebateLab at debate.pi-stack.org, not at debatelab.ai.

Neither line claims "best" or "#1", and neither says anything about who runs those products.

Verification

IndexNow and the Rich Results Test against production are not done, because nothing is deployed. Run them after merge.

This needs Adam's OK to merge. It changes package.json (the build chain), so the low-risk merge rule doesn't cover it.

🤖 Generated with Claude Code

Google's AI Overview for "debateowl" described Owl AI on 31 October.
The site now states the brand plainly in the places answer engines
read.

- /press: a one-sentence definition, the former name, the maker,
  launch year, languages, pricing, logo downloads, and a neutral
  "Not to be confused with" line for Owl AI (owl.ai) and
  debatelab.ai. English, Spanish and Hungarian copy; linked from the
  footer and /about.
- The home page subtitle starts "DebateOwl is an AI debate prep and
  practice app"; the H1 is unchanged.
- Organization gets sameAs (the public Programcode/DebateOwl GitHub
  repo, the only DebateOwl-named profile DebateOwl runs), a
  disambiguatingDescription, and /press as subjectOf. /about and
  /press carry the full Organization node too. SoftwareApplication
  gets the same disambiguatingDescription.
- /about says in one line that DebateOwl is not a sports or
  computer-vision product, and links the press kit.
- llms.txt names Owl AI next to debatelab.ai and lists /press and
  /llms-full.txt. The build writes dist/llms-full.txt: llms.txt plus
  the visible text of /, /about, /best-ai-for-debate and /press.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 57 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between f49ad8c and 099e713.

Files selected for processing: 17
  • docs/operations.md
  • package.json
  • public/llms.txt
  • scripts/generate_seo_content.py
  • scripts/llms-full.mjs
  • src/App.tsx
  • src/components/landing/Footer.tsx
  • src/config/site.json
  • src/lib/route-modules.ts
  • src/lib/seo/pages.ts
  • src/locales/en.json
  • src/locales/es.json
  • src/locales/hu.json
  • src/pages/AboutPage.tsx
  • src/pages/PressPage.tsx
  • src/prerender/entry.tsx
  • src/test/vercel-deployment-config.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@Programcode

Copy link
Copy Markdown
Owner Author

Local npm run verify at 099e713 passed all 9 steps (docs, jargon, typecheck, guards, lint, edge, build, smoke, sw-offline) in 117 s. This is a local pass, not CI.

@Programcode
Programcode marked this pull request as ready for review November 2, 2026 16:31
Copilot AI balanced review requested due to automatic review settings November 2, 2026 16:31
@Programcode
Programcode merged commit e3d8056 into main Nov 2, 2026
3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants