diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 801288b..533e772 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Contributing to Trophy UI +# Contributing to Gamification UI Kit by Trophy -Thank you for helping improve [Trophy UI](https://ui.trophy.so). This document explains how to set up the repo locally, run the site and tooling, and what we look for in contributions. +Thank you for helping improve [Gamification UI Kit by Trophy](https://ui.trophy.so). This document explains how to set up the repo locally, run the site and tooling, and what we look for in contributions. ## Prerequisites diff --git a/README.md b/README.md index 280e993..e72819e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -![Trophy UI](./assets/readme-hero.png) +![Gamification UI Kit by Trophy](./assets/readme-hero.png) -# Trophy UI +# Gamification UI Kit by Trophy -[Trophy UI](https://ui.trophy.so) is a component library built on top of [shadcn/ui](https://ui.shadcn.com/) to help you build gamification experiences faster. +[Gamification UI Kit by Trophy](https://ui.trophy.so) is a component library built on top of [shadcn/ui](https://ui.shadcn.com/) to help you build gamification experiences faster. ## Overview -Trophy UI provides pre-built, customizable React components for gamification—streaks, achievements, leaderboards, points, XP charts, event banners, and more. The [shadcn/ui](https://ui.shadcn.com/) CLI pulls components straight from the registry so you can own the code and tailor it to your product. +Trophy's Gamification UI Kit provides pre-built, customizable React components for gamification—streaks, achievements, leaderboards, points, XP charts, event banners, and more. The [shadcn/ui](https://ui.shadcn.com/) CLI pulls components straight from the registry so you can own the code and tailor it to your product. ## Installation @@ -18,7 +18,7 @@ npx shadcn@latest add https://ui.trophy.so/streak-badge ## Prerequisites -Before using Trophy UI, ensure your project meets these requirements: +Before using Trophy's Gamification UI Kit, ensure your project meets these requirements: - **Node.js 18** or later - **React 18+** — components are client-side React @@ -35,7 +35,7 @@ Install every registry component at once: npx shadcn@latest add https://ui.trophy.so/all ``` -This adds Trophy UI components (and any shared primitives they depend on) into your configured components directory. +This adds components (and any shared primitives they depend on) into your configured components directory. ### Install specific components @@ -65,7 +65,7 @@ Browse the full set on the docs site: [Components](https://ui.trophy.so/docs/com ## Contributing -If you would like to contribute to Trophy UI: +If you would like to contribute to Gamification UI Kit by Trophy: 1. Fork the repository 2. Create a branch for your change diff --git a/apps/www/.source/source.config.mjs b/apps/www/.source/source.config.mjs index 21c5284..0c9bb47 100644 --- a/apps/www/.source/source.config.mjs +++ b/apps/www/.source/source.config.mjs @@ -1,7 +1,15 @@ // source.config.ts -import { defineConfig, defineDocs } from "fumadocs-mdx/config"; +import { defineConfig, defineDocs, frontmatterSchema } from "fumadocs-mdx/config"; +import { z } from "zod"; +var docsPageSchema = frontmatterSchema.extend({ + seoTitle: z.string().optional(), + keywords: z.array(z.string()).optional() +}); var docs = defineDocs({ - dir: "content/docs" + dir: "content/docs", + docs: { + schema: docsPageSchema + } }); var source_config_default = defineConfig({ mdxOptions: { diff --git a/apps/www/app/(app)/(root)/page.tsx b/apps/www/app/(app)/(root)/page.tsx index 6ecbada..744c51a 100644 --- a/apps/www/app/(app)/(root)/page.tsx +++ b/apps/www/app/(app)/(root)/page.tsx @@ -10,6 +10,7 @@ import { PageHeaderHeading, } from "@/components/page-header" import { Button } from "@/registry/trophy/ui/button" +import { TextAnimate } from "@/components/ui/text-animate" export const dynamic = "force-static" export const revalidate = false @@ -17,11 +18,12 @@ export const revalidate = false export const metadata: Metadata = { title: { template: `%s | ${siteConfig.title}`, - default: `${siteConfig.tagline} | ${siteConfig.title}`, + default: siteConfig.title, }, description: siteConfig.description, + keywords: siteConfig.keywords, openGraph: { - title: `${siteConfig.tagline} | ${siteConfig.title}`, + title: siteConfig.title, description: siteConfig.description, url: siteConfig.url, siteName: siteConfig.title, @@ -29,12 +31,99 @@ export const metadata: Metadata = { locale: "en_US", type: "website", }, + twitter: { + card: "summary_large_image", + title: 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: "Gamification UI Kit by Trophy", + applicationCategory: "DeveloperApplication", + operatingSystem: "Any", + description: siteConfig.description, + url: siteConfig.url, + keywords: + "gamification UI kit, gamification component library, open source gamification UI, free gamification components, React gamification, Next.js gamification, shadcn gamification, shadcn registry, Tailwind gamification, streak component, achievement component, leaderboard component, points component", + featureList: [ + "Streak tracking components", + "Achievement badges and cards", + "Leaderboard rankings and podiums", + "Points displays and level systems", + "Built on shadcn/ui and Tailwind CSS for React and Next.js", + "Install with the shadcn CLI from this open registry", + "Fully customizable and open source", + ], + softwareHelp: { + "@type": "CreativeWork", + url: `${siteConfig.url}/docs`, + }, + author: { + "@type": "Organization", + name: "Trophy", + url: "https://trophy.so", + }, +} + +const categories = [ + { + title: "Streak Components", + description: + "Keep users coming back with streak tracking UI. Display daily streaks, streak calendars, and streak badges that motivate consistent engagement.", + href: "/docs/components/streak-card", + components: ["Streak Card", "Streak Calendar", "Streak Badge"], + }, + { + title: "Achievement Components", + description: + "Celebrate milestones with achievement badges, unlock animations, and achievement grids. Give users a sense of progress and accomplishment.", + href: "/docs/components/achievement-badge", + components: [ + "Achievement Badge", + "Achievement Card", + "Achievement Grid", + "Achievement List", + "Achievement Unlocked", + ], + }, + { + title: "Leaderboard Components", + description: + "Drive competition with leaderboard rankings, podium displays, and leaderboard cards. Show users where they stand among peers.", + href: "/docs/components/leaderboard-rankings", + components: ["Leaderboard Rankings", "Leaderboard Podium", "Leaderboard Card"], + }, + { + title: "Points & Levels Components", + description: + "Reward actions with points badges, level timelines, points charts, and boost indicators. Build complete progression systems.", + href: "/docs/components/points-badge", + components: [ + "Points Badge", + "Points Awards", + "Points Boost", + "Points Chart", + "Points Levels List", + "Points Levels Timeline", + ], + }, +] + export default function IndexPage() { return (
+