From a32c46ccaba0dc4a6942dbd10b6e02b4b0fd74e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 18:23:41 +0000 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20SEO=20pass=20=E2=80=94=20keyword-ri?= =?UTF-8?q?ch=20metadata,=20sitemap,=20robots.txt,=20structured=20data,=20?= =?UTF-8?q?and=20enriched=20descriptions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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> --- apps/www/app/(app)/(root)/page.tsx | 49 +++++++++++++++++++ apps/www/app/(app)/docs/[[...slug]]/page.tsx | 16 ++++++ apps/www/app/robots.ts | 15 ++++++ apps/www/app/sitemap.ts | 25 ++++++++++ .../docs/components/achievement-badge.mdx | 2 +- .../docs/components/achievement-card.mdx | 2 +- .../docs/components/achievement-grid.mdx | 2 +- .../docs/components/achievement-list.mdx | 2 +- .../docs/components/achievement-unlocked.mdx | 2 +- apps/www/content/docs/components/index.mdx | 2 +- .../docs/components/leaderboard-card.mdx | 2 +- .../docs/components/leaderboard-podium.mdx | 2 +- .../docs/components/leaderboard-rankings.mdx | 2 +- .../content/docs/components/points-awards.mdx | 2 +- .../content/docs/components/points-badge.mdx | 2 +- .../content/docs/components/points-boost.mdx | 2 +- .../content/docs/components/points-chart.mdx | 2 +- .../docs/components/points-levels-list.mdx | 2 +- .../components/points-levels-timeline.mdx | 2 +- .../content/docs/components/streak-badge.mdx | 2 +- .../docs/components/streak-calendar.mdx | 2 +- .../content/docs/components/streak-card.mdx | 2 +- apps/www/content/docs/index.mdx | 2 +- apps/www/content/docs/styles.mdx | 2 +- apps/www/content/docs/usage.mdx | 2 +- apps/www/lib/config.ts | 25 +++++++++- 26 files changed, 149 insertions(+), 23 deletions(-) create mode 100644 apps/www/app/robots.ts create mode 100644 apps/www/app/sitemap.ts diff --git a/apps/www/app/(app)/(root)/page.tsx b/apps/www/app/(app)/(root)/page.tsx index 6ecbada..f08132c 100644 --- a/apps/www/app/(app)/(root)/page.tsx +++ b/apps/www/app/(app)/(root)/page.tsx @@ -20,6 +20,7 @@ export const metadata: Metadata = { default: `${siteConfig.tagline} | ${siteConfig.title}`, }, description: siteConfig.description, + keywords: siteConfig.keywords, openGraph: { title: `${siteConfig.tagline} | ${siteConfig.title}`, description: siteConfig.description, @@ -29,12 +30,42 @@ export const metadata: Metadata = { locale: "en_US", type: "website", }, + twitter: { + card: "summary_large_image", + title: `${siteConfig.tagline} | ${siteConfig.title}`, + description: siteConfig.description, + images: [siteConfig.ogImage], + }, + alternates: { + canonical: siteConfig.url, + }, metadataBase: new URL(siteConfig.url), } +const jsonLd = { + "@context": "https://schema.org", + "@type": "SoftwareApplication", + name: "Trophy UI", + applicationCategory: "DeveloperApplication", + operatingSystem: "Any", + description: siteConfig.description, + url: siteConfig.url, + offers: { + "@type": "Offer", + price: "0", + priceCurrency: "USD", + }, + keywords: + "gamification UI components, React gamification, streak component, achievement component, leaderboard component, points component, shadcn gamification, Tailwind CSS gamification", +} + export default function IndexPage() { return (
+