Skip to content

Spell the brand "DebateOwl" where Google reads it first; drop DebateLab-only sameAs; larger favicon frames - #274

Merged
Programcode merged 1 commit into
mainfrom
seo/brand-entity-1029
Oct 29, 2026
Merged

Programcode merged 1 commit into
mainfrom
seo/brand-entity-1029

Conversation

@Programcode

Copy link
Copy Markdown
Owner

Task 3, the brand entity fix. In a US sample, Google spell-corrects "debateowl" to "debate owl". This PR makes the places it reads first use the one-word name, and keeps profiles that spell it differently out of sameAs. It branches off main and touches none of #272/#273's generator files (a trial git merge-tree with #273 merges cleanly).

What changed

  • Homepage H1, <title> and first sentence. The H1 and title were already DebateOwl: AI debate prep and practice. The first sentence of body copy (the hero subheadline) was "Prepare cases and practice rounds with AI." It is now "DebateOwl helps you prepare cases and practice rounds with AI.", with es and hu to match.

  • Organization sameAs. I checked both profiles live on 29 Oct 2026:

    • https://www.saashub.com/debatelab: the title is "Is DebateLab good? - SaaSHub". "DebateLab" appears 48 times and "DebateOwl" never.
    • https://www.uneed.best/tool/debatelab: the title is "DebateLab: Launching Soon on Uneed". "DebateLab" appears 19 times and "DebateOwl" never.
    • /debateowl addresses on both sites return 404, and nothing in the repo, the footer or humans.txt names another profile. A web search for "DebateOwl" found no profiles either.

    Both entries are dropped, so sameAs in site.json is now [], and organizationNode() leaves the key out instead of shipping an empty list. check-site.mjs and brand-entity.test.ts used to require a non-empty sameAs. They now accept no sameAs, but still reject a non-https URL and the parent (Pi-Stack). That is a deliberate relaxation of an existing check, made for this spec. docs/operations.md states the rule: list a profile only after checking that its live page says "DebateOwl".

  • favicon.ico. Production served 16, 32 and 48 px frames. The file now holds 16, 32, 48, 64, 96, 128 and 256 px frames. All are PNG-compressed, for 20 KB in total (the old file was 3 KB; the 273 KB favicon from the October performance review stays gone). The new frames come from src/assets/owl/owl-favicon.svg (rasterized in Chromium), the same source as the existing frames, which stay byte-identical. The icon links (favicon.ico, the 48 px PNG, the 192 px PNG, apple-touch-icon) were already on every page, so they are unchanged. Changing them would regenerate every guide and collide with Lead the hub pages with DebateOwl and link the comparison cluster both ways #272/De-template the seven comparison pages and fix their copy slips #273.

Left as is, for Adam to decide

  • alternateName: "Debate Owl" stays on the Organization, WebSite and SoftwareApplication nodes. It tells Google the two-word form is the same entity, which helps people who type it that way, but it could also reinforce the spell-correction. Out of scope here.
  • To get the profiles back into sameAs, rename the SaaSHub and Uneed listings to DebateOwl, then add their URLs to site.json.

Verification

NODE_OPTIONS=--max-old-space-size=3072 npm run verify passed locally at this head (756 vitest tests, collaboration, edge, build with check-site and check-links clean, SW smoke, 47 Playwright @smoke tests). The only later change is a comment in owl-favicon.svg that lists the new frame sizes. In the built dist/index.html, the title and H1 contain "DebateOwl", the first sentence after the H1 is "DebateOwl helps you…", the Organization node has no sameAs, and dist/favicon.ico is the 7-frame file. The sitemap has 62 URLs. This is a local pass, not CI: GitHub Actions is blocked by billing.

🤖 Generated with Claude Code

- The homepage's first sentence now starts with the name: "DebateOwl helps
  you prepare cases and practice rounds with AI." (en, es, hu). The H1 and
  <title> already used it.
- Organization.sameAs drops the SaaSHub and Uneed listings: checked live on
  29 Oct 2026, both still say "DebateLab" and never "DebateOwl". With no
  profile left, the node omits sameAs; check-site and the brand test now
  allow that but still reject a non-https or parent URL.
- favicon.ico gains 64, 96, 128 and 256 px frames of the owl next to the
  existing 16, 32 and 48 px ones (20 KB, PNG-compressed), rasterized from
  src/assets/owl/owl-favicon.svg.

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

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing.

Comment @coderabbitai help to get the list of available commands.

@Programcode
Programcode marked this pull request as ready for review October 29, 2026 17:08
Copilot AI balanced review requested due to automatic review settings October 29, 2026 17:08
@Programcode
Programcode merged commit b4e51ef into main Oct 29, 2026
3 of 10 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.

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