Skip to content

fix(site-docs): brand docs, blog, changelog, and pricing titles with | Lody - #379

Merged
zxch3n merged 2 commits into
mainfrom
cursor/seo-title-branding-3a0f
Sep 4, 2026
Merged

fix(site-docs): brand docs, blog, changelog, and pricing titles with | Lody#379
zxch3n merged 2 commits into
mainfrom
cursor/seo-title-branding-3a0f

Conversation

@zxch3n

@zxch3n zxch3n commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Problem / pressure

Public docs, blog, changelog, and pricing tab titles on lody.ai were bare page names (Introduction, Blog, Pricing). Search results and browser tabs did not identify Lody. The metadata fallback description was the weak string Lody AI. Landing titles already include the brand and must not be double-suffixed.

Summary

  • Add brandTitle() in site-docs/lib/metadata.ts. Empty titles become Lody. Titles that already contain the brand, or already end with | Lody / – Lody / - Lody, stay as-is. Everything else becomes ${title} | Lody.
  • Apply brandTitle only to docs, blog, changelog, and pricing head() titles. Visible DocsTitle stays unbranded. Landing and download heads are unchanged.
  • Replace the pageHead description fallback with the product sentence used on the homepage.
  • Record the invariant in site-docs/AGENTS.md and cover brandTitle plus the description fallback with a Node test. The test test() calls are awaited so type-aware oxlint no-floating-promises stays clean.

Before / after

Before After
/docs/ document title Introduction Introduction | Lody
Homepage title Lody - Run your agents in parallel, safely unchanged
Missing description fallback Lody AI product sentence about parallel agents, worktrees, diff review, GitHub, and mobile

Test plan

  • corepack pnpm --filter @lody/site-docs test — postinstall tests plus brandTitle / pageHead fallback tests passed (7/7).
  • Direct helper check: brandTitle('Introduction') is Introduction | Lody; landingPageTitle('en') stays Lody - Run your agents in parallel, safely.
  • corepack pnpm lint (type-aware oxlint) — 0 errors after awaiting the node:test registrations. First CI run failed on those four floating promises.
  • Confirmed DocsTitle still renders data.title without the brand suffix.
  • Confirmed landing.tsx / download.tsx still pass their existing titles through pageHead without brandTitle.
  • @lody/site-docs tsc failed on missing acp-extension-core / acp-extension-dsh submodule types in @lody/shared. That is an environment checkout gap, not a title-helper error.

Context handoff

Instructions for reviewing agents

  • Review focus: site-docs/lib/metadata.ts brandTitle and the five head() call sites in src/site-pages/{docs,blog,changelog,pricing}.tsx.
  • Decisions to challenge: Branding is applied only at those heads, not inside pageHead, so landing/download/legal titles stay author-controlled.
  • Plausible failures / evidence gaps: A blog or changelog title that mentions "Lody" will not get | Lody appended; that is intentional. Legal pages were left unbranded because they were out of scope.

Authoring context

  • User goal / directives: Make lody.ai docs/blog/changelog/pricing tab titles Title | Lody without double-branding the homepage.
  • Constraints / non-goals: Touch only site-docs/. Do not change visible DocsTitle. Leave landing and download heads alone.
  • Risk-bearing decisions: brandTitle treats any case-insensitive occurrence of the brand as already branded, so titles like Download Lody are not suffixed.
  • Destructive or irreversible behavior: None. SEO strings only; no data or auth changes.
  • Deliberately not done or tested: Legal/support heads were not branded. A full site-docs prerender was not required to prove the title helper.
  • Unknowns / confidence: High confidence in the title helper and call sites. Full package tsc was blocked by missing ACP extension submodule types in this environment.
Open in Web Open in Cursor 

Append the Lody brand to docs, blog, changelog, and pricing document
titles without double-branding landing pages that already include it.

Model: cursor-grok-4.6

Co-authored-by: Zixuan Chen <zx@loro.dev>
@zxch3n
zxch3n marked this pull request as ready for review September 4, 2026 05:37
Model: cursor-grok-4.6

Co-authored-by: Zixuan Chen <zx@loro.dev>
@zxch3n
zxch3n merged commit 3edbd47 into main Sep 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants