Skip to content

List DebateOwl's SaaSHub and AITL profiles in sameAs - #302

Merged
Programcode merged 1 commit into
mainfrom
t3/fix-sameas-jsonld-remove-saashub-debatelab
Nov 3, 2026
Merged

Programcode merged 1 commit into
mainfrom
t3/fix-sameas-jsonld-remove-saashub-debatelab

Conversation

@Programcode

@Programcode Programcode commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Task 1 from the 3 Nov SEO list. The Organization and the home page's SoftwareApplication now list three sameAs profiles, in this order:

I checked all three on 3 Nov: each returns 200 and its title names DebateOwl. The old saashub.com/debatelab slug returns 404. The Uneed listing isn't included because it still uses the DebateLab slug.

Changes

  • src/config/site.json: the sameAs list. Everything that renders it reads from here.
  • src/prerender/entry.tsx: the home page's SoftwareApplication gets the same sameAs. /about and /press render the full Organization node, so their dateModified moves to 2026-11-03.
  • scripts/prerender.mjs: the landing page's lastmod now also follows src/config/site.json. The home page renders that file, but until now the file wasn't in LANDING_SOURCES.
  • scripts/generate_seo_content.py and the public/llms.txt it writes: a new "Listed elsewhere" line, generated from the sameAs list so the two can't drift. Regenerating changed only llms.txt.
  • src/lib/seo/pages.ts: corrected the comment, which said a sameAs profile must be one DebateOwl runs itself.
  • docs/operations.md: replaced the 29 Oct note that the list was empty with the current state.

The SoftwareApplication node in the generated guides is unchanged. Like their reduced Organization reference, the guides leave the full node to the home page.

saashub.com/debatelab references

None were in the repo before this PR (git grep -i saashub a9f69b38 matches only the prose "SaaSHub" in docs/operations.md), so there was nothing to remove from llms.txt, /press, /about or the locale files. After the build:

$ rg -i --hidden 'saashub\.com/debatelab' -g '!.git' -g '!node_modules' .    # dist/ included
(0 matches)
$ rg -i --hidden 'uneed\.best' -g '!.git' -g '!node_modules' .
(0 matches)

JSON-LD validation

I posted each built page's HTML to the schema.org validator (POST https://validator.schema.org/validate). It reported no errors or warnings:

dist/index.html        errors=0 warnings=0  Organization.sameAs + SoftwareApplication.sameAs = the 3 profiles
dist/about/index.html  errors=0 warnings=0  Organization.sameAs = the 3 profiles
dist/press/index.html  errors=0 warnings=0  Organization.sameAs = the 3 profiles

A local script also parsed every application/ld+json block in the built pages and compared each sameAs with the expected list, order included:

ok   / Organization.sameAs = the 3 profiles, in order
ok   / SoftwareApplication.sameAs = the 3 profiles, in order
     /: 1 JSON-LD block(s) parsed, 5 nodes: Organization, WebSite, SoftwareApplication, WebPage, FAQPage
ok   /about Organization.sameAs = the 3 profiles, in order
     /about: 1 JSON-LD block(s) parsed, 3 nodes: Organization, AboutPage, BreadcrumbList
ok   /press Organization.sameAs = the 3 profiles, in order
     /press: 1 JSON-LD block(s) parsed, 3 nodes: Organization, WebPage, BreadcrumbList

npm run build runs scripts/check-site.mjs, which checks that JSON-LD parses and that Organization.sameAs is a list of https URLs that doesn't include the founder. It printed check-site: 80 HTML files, sitemap and llms.txt resolve; no problems.

Sitemap

dist/sitemap.xml has <lastmod>2026-11-03</lastmod> for exactly five URLs: /, /hu, /es, /about and /press. No other date changed.

Checks

  • npm run verify at 88626ed passed all 9 steps (docs, jargon, typecheck, guards, lint, edge, build, smoke, sw-offline) in 123.5 s. This is a local run; CI on this head is separate.
  • Page titles are unchanged. No phone number or postal address was added.
  • IndexNow should be sent after the deploy. This PR doesn't send it.

Draft. Merging needs Adam's approval.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • DebateOwl’s GitHub repository and external directory listings are now included in the site’s public “listed elsewhere” information and organization profiles.
    • The SoftwareApplication structured data now includes those profiles when available.
    • The landing page’s last-modified date now reflects changes to site configuration.
  • Documentation
    • Operations documentation now records the listed profiles and notes that Uneed remains excluded.
    • The About and Press page modification dates are updated to November 3, 2026.

The Organization and the home page's SoftwareApplication now name the
GitHub repository, the renamed SaaSHub listing and the AITL listing as
sameAs. llms.txt lists the same profiles, generated from site.json.
Uneed stays out while it still uses the old DebateLab slug.

The landing page's lastmod now also follows src/config/site.json, which
it renders; /about and /press move to 2026-11-03.

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

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Walkthrough

The organization’s sameAs list now includes its GitHub repository and two directory listings. The list is included in SoftwareApplication structured data and generated llms.txt output. Prerender source tracking and modification dates are updated.

Changes: Organization profile listings

Layer / File(s) Summary
Update profile list and guidance
src/config/site.json, src/lib/seo/pages.ts, docs/operations.md
The sameAs list adds the SaaSHub and Artificial Intelligence Tools List pages. The code comment and operations documentation describe the updated profile criteria. Uneed remains excluded in the documentation.
Publish profile URLs
src/prerender/entry.tsx, scripts/generate_seo_content.py, public/llms.txt, scripts/prerender.mjs
SoftwareApplication JSON-LD includes the nonempty sameAs list. The generated and published llms.txt lists its URLs. Prerender source tracking includes src/config/site.json; /about and /press modification dates change to 2026-11-03.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: cursoragent

Merge Risk: Minimal · up to 88626

The profile updates and generated SEO outputs are consistent, with no actionable merge-blocking risk identified.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

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

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

@Programcode
Programcode marked this pull request as ready for review November 3, 2026 17:39
Copilot AI balanced review requested due to automatic review settings November 3, 2026 17:39
@Programcode
Programcode merged commit a7ced49 into main Nov 3, 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