Skip to content

SEO pass: keyword-rich metadata, sitemap, robots.txt, structured data, and enriched descriptions#4

Merged
cbrinicombe13 merged 9 commits into
mainfrom
copilot/seo-pass-ui-library
May 15, 2026
Merged

SEO pass: keyword-rich metadata, sitemap, robots.txt, structured data, and enriched descriptions#4
cbrinicombe13 merged 9 commits into
mainfrom
copilot/seo-pass-ui-library

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 13, 2026

Summary

Comprehensive SEO pass across the Trophy UI website to improve search engine rankings for gamification UI–related search terms.

Changes

Site-wide config (lib/config.ts)

  • Tagline updated to "Open-source gamification UI components for React"
  • Description rewritten to be keyword-rich and informative
  • Added a keywords array with 19 targeted terms (e.g. "gamification UI components", "streak UI component", "React gamification library", "shadcn gamification")

Homepage (app/(app)/(root)/page.tsx)

  • Added keywords, twitter card, and alternates.canonical to metadata
  • Injected JSON-LD structured data (SoftwareApplication schema) for rich search results
  • Added a crawlable <h2> + <p> section below the hero with keyword-rich copy ("Gamification UI Components for React")

Docs page template (app/(app)/docs/[[...slug]]/page.tsx)

  • Added keywords, alternates.canonical, and twitter card to every docs page via generateMetadata

Component MDX descriptions (all 17 components)

  • Rewrote every description frontmatter field to include targeted keywords: component name, "React", "gamification", "shadcn/ui", "Tailwind CSS"

Docs content pages

  • Updated descriptions for Introduction, Components index, Usage, and Styles pages with SEO-friendly copy

New files

  • app/robots.ts — allows all crawlers, points to sitemap
  • app/sitemap.ts — auto-generates sitemap entries from all docs/component pages with appropriate priorities

Target keywords

The changes target search terms including:

  • "gamification UI components"
  • "gamification React components"
  • "streak UI component React"
  • "achievement badge React"
  • "leaderboard React component"
  • "points system UI"
  • "shadcn gamification"
  • "open source gamification"
  • And many more via natural keyword inclusion in descriptions

Validation

  • TypeScript compiles cleanly (tsc --noEmit passes)
  • Full build could not be tested due to sandbox network restrictions (Google Fonts unreachable), but all changes are metadata/content only

…ed data, and enriched descriptions

- Updated siteConfig with SEO-optimized tagline, description, and keywords array
- Enhanced homepage metadata with keywords, Twitter card, canonical URL, and JSON-LD structured data
- Added crawlable heading + paragraph section on homepage for search engine indexing
- Added robots.ts allowing all crawlers and pointing to sitemap
- Added sitemap.ts auto-generating entries from all docs/component pages
- Rewrote all 17 component MDX descriptions to be keyword-rich (React, gamification, shadcn/ui, Tailwind CSS)
- Updated docs index, components index, usage, and styles page descriptions for SEO
- Enhanced docs page generateMetadata with keywords, canonical URLs, and Twitter cards

Agent-Logs-Url: https://github.com/trophyso/ui/sessions/f34182c4-e711-464c-b7b0-de8fc27bdbbd

Co-authored-by: jasontlouro <33489988+jasontlouro@users.noreply.github.com>
@cbrinicombe13 cbrinicombe13 marked this pull request as ready for review May 14, 2026 22:21
title: Achievement Badge
description: A React achievement badge component for gamification UIs. Show unlocked and locked states, progress rings, rarity labels, and click handling. Built on shadcn/ui and Tailwind CSS.
description: "Open source React achievement badge component with locked/unlocked states, progress rings and rarity support. Use for achievement UI design and collections. Built on shadcn/ui + Tailwind."
seoTitle: "Achievement Badge — React achievement badge component | Trophy UI"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the lowercase here is a bit ugly IMO, and we're not calling this Trophy UI yet I thought, instead Gamification UI Kit by Trophy? in this case could just be Gamification UI Kit in place of "Trophy UI" here.

We should probably dynamically append that | [name of site] rather than hardcoding it into every component

This comment applies to all component mdx files

- shadcn gamification components
---

Achievement Unlocked is a focused unlock moment surface to congratulate the user, reinforce rewards, and encourage further engagement through social sharing.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if we should try to work the 'gamification' keyword into more of these component descriptions

- gamification widgets
---

Trophy UI ships gamification widgets as focused React building blocks like streak counters, achievement badges, leaderboard rankings, and points surfaces rather than a monolithic SDK. Each page documents one component you can add with the shadcn CLI, then customize like any other file in your repo.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

trophy UI? We keep going back and forth on this. which one is it? site header says Gamification UI Kit by Trophy, so probably should say "Trophy's Gamification UI Kit" here instead

@cbrinicombe13 cbrinicombe13 merged commit 6c82a9f into main May 15, 2026
1 check passed
@cbrinicombe13 cbrinicombe13 deleted the copilot/seo-pass-ui-library branch May 15, 2026 15:49
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