From 0cdd50d09a8ee08cdfcd77c2952bd0d51bb506b7 Mon Sep 17 00:00:00 2001 From: ulises-jeremias Date: Thu, 23 Jul 2026 11:33:13 -0300 Subject: [PATCH 1/3] feat(site): promote Discord community in banner, header, and footer Move the top NEW announcement to the Create Awesome Discord invite. Flagship templates remain featured in the mid-page banner section. Co-authored-by: Cursor --- src/app/page.tsx | 13 ++++++++----- src/components/announcement-banner.tsx | 4 ++-- src/components/discord-icon.tsx | 10 ++++++++++ src/components/layout-shell.tsx | 1 + src/components/saas-ai-banner.tsx | 2 +- src/components/site-header.tsx | 7 +++++++ src/lib/community.ts | 2 ++ 7 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 src/components/discord-icon.tsx create mode 100644 src/lib/community.ts diff --git a/src/app/page.tsx b/src/app/page.tsx index f0405af..08626de 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -5,6 +5,7 @@ import { AnimatedTerminal } from '@/components/animated-terminal'; import { AnnouncementBanner } from '@/components/announcement-banner'; import { ContributorsSection } from '@/components/contributors-section'; import { CopyButton } from '@/components/copy-button'; +import { DiscordIcon } from '@/components/discord-icon'; import { EcosystemSection } from '@/components/ecosystem-section'; import { FeaturedTemplate } from '@/components/featured-template'; import { HeroSection } from '@/components/hero-section'; @@ -14,6 +15,7 @@ import { StatsBar } from '@/components/stats-bar'; import { TemplateCategories } from '@/components/template-categories'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'; +import { DISCORD_INVITE_URL } from '@/lib/community'; import { getTemplatesData } from '@/lib/data'; const PRIMARY_COMMAND = 'uvx create-awesome-python-app my-app'; @@ -31,11 +33,12 @@ export default async function Home() {
New: FastAPI Starter — production-ready API with uv, Ruff, pytest, and composable Python extensions. - } - ctaHref="/templates/fastapi-starter" - ctaLabel="Explore template" + icon={} + label="NEW" + message={<>Join Create Awesome on Discord — chat, good first issues, and collab across Node / Python / V.} + ctaHref={DISCORD_INVITE_URL} + ctaLabel="Join Discord" + ctaExternal />
-
+
)}
diff --git a/src/components/discord-icon.tsx b/src/components/discord-icon.tsx new file mode 100644 index 0000000..7bd7e35 --- /dev/null +++ b/src/components/discord-icon.tsx @@ -0,0 +1,10 @@ +import { cn } from '@/lib/utils'; + +/** Discord brand mark (simple-icons path). */ +export function DiscordIcon({ className }: { className?: string }) { + return ( + + ); +} diff --git a/src/components/layout-shell.tsx b/src/components/layout-shell.tsx index 1e7ecbc..001e6c8 100644 --- a/src/components/layout-shell.tsx +++ b/src/components/layout-shell.tsx @@ -117,6 +117,7 @@ export function LayoutShell({ children }: { children: ReactNode }) {

Community