Skip to content

Template pages: "What is…" heading uses the SEO keyword, with a/an by sound - #82

Merged
marlonmisra merged 3 commits into
mainfrom
claude/jolly-faraday-f54dz3
Oct 22, 2026
Merged

marlonmisra merged 3 commits into
mainfrom
claude/jolly-faraday-f54dz3

Conversation

@vexche

@vexche vexche commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

On template detail pages (/templates/<slug>), the heading above the definition section changes in three ways:

  • It uses the SEO keyword instead of the template name. A template with no keyword falls back to its name. Example: "What is a client project tracker?" becomes "What is a project tracker template?".
  • "a" or "an" goes by how the word sounds, not its first letter.
    • Ordinary words: "an online…", "a unified…" but "an uninsured…", "a one-page…", "an hourly…".
    • All-caps acronyms are read letter by letter ("an AI…", "an RSVP…", "an RSVP-based…", "a PDF…").
    • Mixed-case words like "SaaS", and a few all-caps ones spoken as words (SAAS, NASA, GIF…), are treated as ordinary words ("a SaaS…").
  • Acronyms keep their capitals. Before, the whole phrase was lowercased, so "Internal AI assistant" showed as "internal ai assistant".

All of it lives in templateCopy() / article() in src/lib/template-page.ts. The FAQ heading, CTA and SEO title are unchanged.

Linear

No ticket. Ticket creation was skipped for this change.

Testing

  • Added unit tests in src/lib/template-page.test.mjs covering the keyword heading, the name fallback, the sound-based article (including SaaS/SAAS, uninsured/unidentified and hyphenated acronyms) and acronym casing. npm test: 34 pass, 0 fail.
  • tsc --noEmit and ESLint on the changed files are clean.
  • A local next build couldn't complete because the sandbox can't reach the blog's Ghost host. That is unrelated to this change, and Vercel's build is the check here.
  • Preview: https://assembly-studio-website-git-claude-jolly-far-8e94c7-assemblycom.vercel.app
  • Verified on the preview:
Template definition heading on the preview

🤖 Generated with Claude Code

https://claude.ai/code/session_016GGuBqTRpJoF1ALgzbBRtg

… sound

The definition heading now asks about the template's SEO keyword, falling
back to its name. The article follows pronunciation rather than the first
letter (an AI…, an online…, a PDF…, a unified…, an hourly…), and acronyms
keep their capitals instead of being lowercased.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016GGuBqTRpJoF1ALgzbBRtg
@vexche
vexche requested a review from nastyaeremina as a code owner October 21, 2026 18:01
@vercel

vercel Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
assembly-studio-website Ready Ready Preview Oct 21, 2026 6:13pm UTC

Request Review

@greptile-apps

greptile-apps Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The PR appears safe to merge.

Summary

Template definition headings now use the SEO keyword, fall back to the template name, and preserve acronym capitals.

  • Template definition questions use the search phrase and read naturally.

Reviews (3) · Last reviewed commit: "Template headings: pick the article from..." · Reviewed by Greptile

Comment thread src/lib/template-page.ts Outdated
Comment thread src/lib/template-page.ts Outdated
… on "an"

Addresses review: "SaaS" was read letter by letter ("an SaaS"), and the
"uni" exception caught "uninsured"/"unimportant" ("a uninsured").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016GGuBqTRpJoF1ALgzbBRtg

vexche commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

@greptileai please re-review. 10421a5 addresses both findings.


Generated by Claude Code

Comment thread src/lib/template-page.ts
greptile-apps[bot]
greptile-apps Bot previously approved these changes Oct 21, 2026
…ed word

"RSVP-based registration form" now gets "an", as it did before the
acronym change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016GGuBqTRpJoF1ALgzbBRtg

vexche commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

@greptileai please re-review. 0ddc388 fixes the hyphenated-acronym case.


Generated by Claude Code

@vexche

vexche commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author
Screenshot 2026-10-21 at 2 17 29 PM working as intended

@vexche
vexche enabled auto-merge (squash) October 21, 2026 18:19
@vexche
vexche disabled auto-merge October 22, 2026 13:24
@marlonmisra
marlonmisra merged commit 23a8b1a into main Oct 22, 2026
4 checks passed
@marlonmisra
marlonmisra deleted the claude/jolly-faraday-f54dz3 branch October 22, 2026 13:24

This branch was successfully deployed

1 active deployment
Preview — 0ddc3882 Deployed Oct 21, 2026 by vercel[bot]
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.

3 participants