Name the app's author in structured data, for search - #162
Merged
Merged
Conversation
Part of the 2026-09-05 credit James asked for: "App designed by James
Markey MBE and the UNISIM team... it's more for search results than user."
The in-app half is a colophon in the SDK's <AboutAppDialog>. This is the
half a search engine can actually read, because that one cannot be: the
dialog is a React portal and only enters the DOM once somebody clicks
"About this app", so a crawler never renders it. This app's index.html is
static and had no structured data at all.
Adds one SoftwareApplication block naming:
* Person - James Markey, honorificSuffix MBE, url -> /about-james. The
same url the app's marketing page uses, so the two resolve to ONE
person rather than two unlinked mentions of a name.
* Organization - UNI-SIM, with subjectOf the team post.
* provider - UNI-SIM. A different claim from author and both belong:
provider operates and supports it, author made it.
Every value is read from THIS FILE's own title, description and canonical
rather than typed again, so the block cannot drift from what the page
already says about itself.
Verified in Chromium: exactly one JSON-LD block, it parses, the author
reads back with the right name, suffix and url, and its url matches the
page's canonical. Same check passed on all 15 apps.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M49D85H2FcSGrfbTMQsv3o
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the 2026-09-05 credit James asked for: "App designed by James Markey MBE and the UNISIM team... it's more for search results than user." One of 15 identical PRs across the Universal Apps.
Why this file and not the About dialog
The in-app half is a colophon in the SDK's
<AboutAppDialog>. This is the half a search engine can actually read — because that one cannot be: the dialog is a React portal and only enters the DOM once somebody clicks "About this app", so a crawler never renders it. This app'sindex.htmlis static, already carries a full set of meta/og/twitter tags, and had no structured data at all.What it adds
One
SoftwareApplicationblock naming:honorificSuffixMBE,url→/about-james. The same url the app's marketing page uses, so the two resolve to one person rather than two unlinked mentions of a name.subjectOfthe team post.author, and both belong: provider operates and supports it, author made it.Every value is read from this file's own
<title>, description and canonical rather than typed again, so the block can't drift from what the page already says about itself.Verified
Chromium, on all 15 apps: exactly one JSON-LD block, it parses, the author reads back with the right name, suffix and url, and its
urlmatches the page'scanonical. 15/15, zero page errors.🤖 Generated with Claude Code
https://claude.ai/code/session_01M49D85H2FcSGrfbTMQsv3o
Generated by Claude Code