diff --git a/public/community/create-awesome-community-logo.png b/public/community/create-awesome-community-logo.png
new file mode 100644
index 0000000..6c0a52a
Binary files /dev/null and b/public/community/create-awesome-community-logo.png differ
diff --git a/src/app/page.tsx b/src/app/page.tsx
index e6e1812..487469f 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -3,9 +3,10 @@ import Link from 'next/link';
import { AnimatedGradient } from '@/components/animated-gradient';
import { AnimatedTerminal } from '@/components/animated-terminal';
import { AnnouncementBanner } from '@/components/announcement-banner';
+import { CommunityLogo } from '@/components/community-logo';
import { ContributorsSection } from '@/components/contributors-section';
import { CopyButton } from '@/components/copy-button';
-import { DiscordIcon } from '@/components/discord-icon';
+import { DiscordCommunitySection } from '@/components/discord-community-section';
import { EcosystemSection } from '@/components/ecosystem-section';
import { FeaturedTemplate } from '@/components/featured-template';
import { HeroSection } from '@/components/hero-section';
@@ -33,7 +34,7 @@ export default async function Home() {
}
+ icon={}
label="NEW"
message={
<>Join Create Awesome on Discord — chat, good first issues, and collaboration across Node / Python / V.>
@@ -213,6 +214,8 @@ export default async function Home() {
+
+
diff --git a/src/components/community-logo.tsx b/src/components/community-logo.tsx
new file mode 100644
index 0000000..1bb2035
--- /dev/null
+++ b/src/components/community-logo.tsx
@@ -0,0 +1,24 @@
+import Image from 'next/image';
+import { COMMUNITY_LOGO_SRC } from '@/lib/community';
+import { cn } from '@/lib/utils';
+
+export function CommunityLogo({
+ className,
+ size = 40,
+ priority = false,
+}: {
+ className?: string;
+ size?: number;
+ priority?: boolean;
+}) {
+ return (
+
+ );
+}
diff --git a/src/components/discord-community-section.tsx b/src/components/discord-community-section.tsx
new file mode 100644
index 0000000..925ee0a
--- /dev/null
+++ b/src/components/discord-community-section.tsx
@@ -0,0 +1,80 @@
+import { ArrowRight, MessagesSquare, Sparkles } from 'lucide-react';
+import { AnimatedGradient } from '@/components/animated-gradient';
+import { CommunityLogo } from '@/components/community-logo';
+import { Button } from '@/components/ui/button';
+import { DISCORD_INVITE_URL, DISCORD_WIDGET_SRC } from '@/lib/community';
+
+const highlights = [
+ { icon: MessagesSquare, label: 'Chat across Node, Python, and V' },
+ { icon: Sparkles, label: 'Good first issues and contributor help' },
+];
+
+export function DiscordCommunitySection() {
+ return (
+
+
+
+
+
+
+
+
+
+
+ Community
+
+
+
+
+ Hang out on Discord
+
+
+ Join Create Awesome for live chat, good first issues, and collaboration across the Node, Python, and V
+ ecosystems.
+
+
+
+
+ {highlights.map(({ icon: Icon, label }) => (
+ -
+
+ {label}
+
+ ))}
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/discord-icon.tsx b/src/components/discord-icon.tsx
deleted file mode 100644
index 7bd7e35..0000000
--- a/src/components/discord-icon.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { cn } from '@/lib/utils';
-
-/** Discord brand mark (simple-icons path). */
-export function DiscordIcon({ className }: { className?: string }) {
- return (
-
- );
-}
diff --git a/src/components/site-header.tsx b/src/components/site-header.tsx
index 8da3318..46cd8ff 100644
--- a/src/components/site-header.tsx
+++ b/src/components/site-header.tsx
@@ -4,7 +4,7 @@ import { Gauge, Github, Menu, Package, Search } from 'lucide-react';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { useEffect, useState } from 'react';
-import { DiscordIcon } from '@/components/discord-icon';
+import { CommunityLogo } from '@/components/community-logo';
import { usePerformanceMode } from '@/components/performance-provider';
import { ThemeToggle } from '@/components/theme-toggle';
import { Button } from '@/components/ui/button';
@@ -143,7 +143,7 @@ export function SiteHeader({ onOpenCommand }: { onOpenCommand?: () => void }) {
diff --git a/src/lib/community.ts b/src/lib/community.ts
index 2e2ca90..c98a420 100644
--- a/src/lib/community.ts
+++ b/src/lib/community.ts
@@ -1,2 +1,10 @@
/** Canonical Create Awesome Discord invite (shared across CNA / CPA / CVA). */
export const DISCORD_INVITE_URL = 'https://discord.gg/bR5VyATgka';
+
+/** Discord server snowflake — used by the official embed widget. */
+export const DISCORD_SERVER_ID = '1527933660764831825';
+
+export const DISCORD_WIDGET_SRC = `https://discord.com/widget?id=${DISCORD_SERVER_ID}&theme=dark`;
+
+/** Community brand mark (Create Awesome CA logo). */
+export const COMMUNITY_LOGO_SRC = '/community/create-awesome-community-logo.png';