diff --git a/app/(home)/AdoptersSection.tsx b/app/(home)/AdoptersSection.tsx new file mode 100644 index 0000000..2064b52 --- /dev/null +++ b/app/(home)/AdoptersSection.tsx @@ -0,0 +1,222 @@ +import { ArrowUpRight, CodeXml } from "lucide-react"; + +import SectionTitle from "./SectionTitle"; + +type Adopter = { + name: string; + repository: string; + repositoryUrl: string; + manifestUrl: string; + usage: string; + dependency: string; + avatarUrl: string; +}; + +// Source: Nativewind brand research/featured-adopters.json at +// brand commit 8fedabcab4bb480b40a0d84002c12e32e03e6e23. +// These entries were verified against public package manifests on 2026-09-21. +const adopters: Adopter[] = [ + { + name: "PostHog", + repository: "PostHog/posthog", + repositoryUrl: "https://github.com/PostHog/posthog", + manifestUrl: + "https://github.com/PostHog/posthog/blob/master/products/desktop/apps/mobile/package.json", + usage: "Mobile app", + dependency: "^4.2.1", + avatarUrl: "https://github.com/PostHog.png?size=160", + }, + { + name: "Folo", + repository: "RSSNext/Folo", + repositoryUrl: "https://github.com/RSSNext/Folo", + manifestUrl: + "https://github.com/RSSNext/Folo/blob/dev/apps/mobile/package.json", + usage: "Mobile app", + dependency: "4.2.6", + avatarUrl: "https://github.com/RSSNext.png?size=160", + }, + { + name: "Onyx", + repository: "onyx-dot-app/onyx", + repositoryUrl: "https://github.com/onyx-dot-app/onyx", + manifestUrl: + "https://github.com/onyx-dot-app/onyx/blob/main/mobile/package.json", + usage: "Mobile app", + dependency: "^4.2.6", + avatarUrl: "https://github.com/onyx-dot-app.png?size=160", + }, + { + name: "Karakeep", + repository: "karakeep-app/karakeep", + repositoryUrl: "https://github.com/karakeep-app/karakeep", + manifestUrl: + "https://github.com/karakeep-app/karakeep/blob/main/apps/mobile/package.json", + usage: "Mobile app", + dependency: "^4.2.6", + avatarUrl: "https://github.com/karakeep-app.png?size=160", + }, + { + name: "Suna", + repository: "kortix-ai/suna", + repositoryUrl: "https://github.com/kortix-ai/suna", + manifestUrl: + "https://github.com/kortix-ai/suna/blob/main/apps/mobile/package.json", + usage: "Mobile app", + dependency: "^4.2.1", + avatarUrl: "https://github.com/kortix-ai.png?size=160", + }, + { + name: "Linkwarden", + repository: "linkwarden/linkwarden", + repositoryUrl: "https://github.com/linkwarden/linkwarden", + manifestUrl: + "https://github.com/linkwarden/linkwarden/blob/main/apps/mobile/package.json", + usage: "Mobile app", + dependency: "^4.2.1", + avatarUrl: "https://github.com/linkwarden.png?size=160", + }, + { + name: "Polar", + repository: "polarsource/polar", + repositoryUrl: "https://github.com/polarsource/polar", + manifestUrl: + "https://github.com/polarsource/polar/blob/main/clients/apps/app/package.json", + usage: "App", + dependency: "^4.2.1", + avatarUrl: "https://github.com/polarsource.png?size=160", + }, + { + name: "React Native Reusables", + repository: "founded-labs/react-native-reusables", + repositoryUrl: "https://github.com/founded-labs/react-native-reusables", + manifestUrl: + "https://github.com/founded-labs/react-native-reusables/blob/main/packages/registry/package.json", + usage: "Component registry", + dependency: "^4.2.2", + avatarUrl: "https://github.com/founded-labs.png?size=160", + }, + { + name: "gluestack UI", + repository: "gluestack/gluestack-ui", + repositoryUrl: "https://github.com/gluestack/gluestack-ui", + manifestUrl: + "https://github.com/gluestack/gluestack-ui/blob/main/packages/gluestack-ui/package.json", + usage: "Component library", + dependency: "^4.1.23", + avatarUrl: "https://github.com/gluestack.png?size=160", + }, + { + name: "Streamyfin", + repository: "streamyfin/streamyfin", + repositoryUrl: "https://github.com/streamyfin/streamyfin", + manifestUrl: + "https://github.com/streamyfin/streamyfin/blob/develop/package.json", + usage: "App", + dependency: "^2.0.11", + avatarUrl: "https://github.com/streamyfin.png?size=160", + }, +]; + +export default function AdoptersSection() { + return ( + <> + + +
+
+
+

+ Built with Nativewind +

+

+ Open source apps and libraries using Nativewind in their public + codebases. +

+
+

+ Ten projects selected from verified public package manifests. + Project links and dependency evidence are included below. +

+
+ + +
+ + ); +} diff --git a/app/(home)/SectionLink.tsx b/app/(home)/SectionLink.tsx index 7a71a7a..b10b77f 100644 --- a/app/(home)/SectionLink.tsx +++ b/app/(home)/SectionLink.tsx @@ -2,14 +2,14 @@ import { cn } from "@/lib/cn"; export default function SectionLink({href, name, border, className}: {href: string, name: string, border?: boolean, className?: string}) { return ( -
+ {/* -rotate-90 block -translate-x-[calc(50%+1rem)] translate-y-[calc(100%+5rem)] */} -
+ # -
+
{name} -
+ ) -} \ No newline at end of file +} diff --git a/app/(home)/SectionTitle.tsx b/app/(home)/SectionTitle.tsx index e1f2490..04f16ea 100644 --- a/app/(home)/SectionTitle.tsx +++ b/app/(home)/SectionTitle.tsx @@ -1,15 +1,27 @@ import SectionLink from "./SectionLink"; import { cn } from "@/lib/cn"; -export default function SectionTitle({ id, title, className } : { id: string; title: string, className?: string }) { +export default function SectionTitle({ + id, + title, + className, + level = 1, +}: { + id: string; + title: string; + className?: string; + level?: 1 | 2; +}) { + const Heading = level === 1 ? "h1" : "h2"; + return ( -

+
{title}
-

+ ) -} \ No newline at end of file +} diff --git a/app/(home)/page.tsx b/app/(home)/page.tsx index f3fac4f..1c399bf 100644 --- a/app/(home)/page.tsx +++ b/app/(home)/page.tsx @@ -1,8 +1,7 @@ +import AdoptersSection from "./AdoptersSection"; import ComponentKitsSection from "./ComponentKitsSection"; import FooterSection from "./FooterSection"; import HeroSection from "./HeroSection"; -import TestimonialsSection from "./TestimonialsSection"; -import TestimonialsSectionContents from "./TestimonialsSectionContents"; import WhyNativewindSection from "./WhyNativewindSection"; export default function HomePage() { @@ -12,9 +11,7 @@ export default function HomePage() {
- - - +