feat(seo): md alternate tags + copy/ask actions - #72
Merged
pamelachia merged 8 commits intoJul 28, 2026
Merged
pamelachia merged 8 commits into
pamelachia merged 8 commits into
Conversation
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
…rapper Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
pamelachia
marked this pull request as ready for review
July 28, 2026 16:25
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
Signed-off-by: Pamela Chia <pamelachiamayyee@gmail.com>
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.
multigres.com serves markdown for every docs page, blog post, and the homepage, but nothing advertised it: agents had to know the
.mdconvention in advance. This adds the discovery layer on top of the Accept/.mdnegotiation locked in by #71, and standardizes the on-page affordance to Copy Markdown + Ask ChatGPT/Claude.Changed:
<link rel="alternate" type="text/markdown" href="<absolute .md sibling>">. The homepage sibling gains a/index.mdURL (the middleware previously only answered/.md), matching the docs-rootindex.mdshape;/.mdkeeps working.text/plain;charset=UTF-8); the header is now set explicitly so a runtime change can't silently alter it.MarkdownActionscomponent. URL templates, prompt text, and brand icons are byte-identical to what the popover generated.MarkdownActionsrow.ask_ai_clicked(agent: chatgpt | claude),copy_as_markdown_clicked(fires only after a successful clipboard write), andmultigres_github_clicked(source: hero | nav | footer). The first two match the supabase.com docs event names so readouts can union both sites and split by host; the GitHub event is deliberately site-prefixed since the supabase.com equivalent (homepage_github_button_clicked) has a different shape, so no name union is possible there anyway. Sent through the existing PostHog client (pageviews already flow; autocapture is off at the project level, so explicit events are required).Note: placement screenshots (docs header, blog header, homepage hero at desktop + mobile) reviewed before this leaves draft.
To test
Previews are behind Deployment Protection, so pre-merge verification ran against the built Nitro function locally (14-check fetch matrix, all green); the same matrix re-runs as curl against production after merge:
/,/docs,/docs/architecture,/blog/listen-notify— each pointing at an absolute.mdsibling that 200s astext/markdown/index.mdserves the homepage markdown;/.mdstill works/llms.txt+/llms-full.txtreturntext/plain; charset=utf-8(GET + HEAD)*/*Accept still gets HTML on docs (no negotiation regression).md+ llms serving verified in-browser$host):ask_ai_clickedagent=chatgpt + agent=claude,copy_as_markdown_clickedafter successful clipboard writemultigres_github_clickedingestion (same capture path as the verified events)Linear