From 1e1785da072820adc22b8d167ad9665b0bc513f1 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Fri, 3 Jul 2026 16:24:53 +0530 Subject: [PATCH 1/2] feat: add sponsors page with GitHub Sponsors CTA and crypto addresses --- app/sponsors/page.tsx | 87 ++++++++++++++++++++++++++++++++++ components/app/mobile-nav.tsx | 12 +++++ components/app/site-footer.tsx | 8 ++++ components/app/site-header.tsx | 12 +++++ 4 files changed, 119 insertions(+) create mode 100644 app/sponsors/page.tsx diff --git a/app/sponsors/page.tsx b/app/sponsors/page.tsx new file mode 100644 index 0000000..dfb706a --- /dev/null +++ b/app/sponsors/page.tsx @@ -0,0 +1,87 @@ +import type { Metadata } from "next"; +import { ArrowUpRight } from "lucide-react"; +import { CopyButton } from "@/components/app/copy-button"; +import { PressLink } from "@/components/app/press-link"; + +export const metadata: Metadata = { + title: "Sponsors", + description: + "Support beUI's development through GitHub Sponsors or directly with crypto.", + alternates: { canonical: "/sponsors" }, + openGraph: { + title: "Sponsors · beUI", + description: + "Support beUI's development through GitHub Sponsors or directly with crypto.", + url: "/sponsors", + type: "website", + siteName: "beUI", + images: ["/api/og"], + }, + twitter: { + card: "summary_large_image", + title: "Sponsors · beUI", + images: ["/api/og"], + }, +}; + +const GITHUB_SPONSORS_URL = "https://github.com/sponsors/starc007"; + +function truncateAddress(address: string) { + return address.length > 14 + ? `${address.slice(0, 6)}...${address.slice(-6)}` + : address; +} + +function AddressRow({ label, address }: { label: string; address: string }) { + return ( +
+
+

{label}

+

+ {truncateAddress(address)} +

+
+ +
+ ); +} + +export default function SponsorsPage() { + const evmAddress = process.env.SPONSOR_EVM_ADDRESS; + const solAddress = process.env.SPONSOR_SOL_ADDRESS; + + return ( +
+

+ Sponsors +

+

+ Support beUI +

+

+ beUI is free and open source. If it's saved you time, consider + supporting its development. +

+ + + Sponsor on GitHub + + + + {evmAddress || solAddress ? ( +
+

+ Crypto +

+ {evmAddress ? : null} + {solAddress ? : null} +
+ ) : null} +
+ ); +} diff --git a/components/app/mobile-nav.tsx b/components/app/mobile-nav.tsx index c2f6c7f..c88397b 100644 --- a/components/app/mobile-nav.tsx +++ b/components/app/mobile-nav.tsx @@ -76,6 +76,18 @@ export function MobileNav() { > Playground + setOpen(false)} + className={cn( + "rounded-md px-3 py-1.5 text-sm transition-colors", + pathname.startsWith("/sponsors") + ? "text-foreground" + : "text-muted-foreground hover:text-foreground", + )} + > + Sponsors + setOpen(false)} /> diff --git a/components/app/site-footer.tsx b/components/app/site-footer.tsx index cc6c4f9..558e424 100644 --- a/components/app/site-footer.tsx +++ b/components/app/site-footer.tsx @@ -114,6 +114,14 @@ export function SiteFooter() { GitHub +
  • + + Sponsor + +
  • Playground + + Sponsors + From 5bf4df744e984a304b879331331eeee328d0751a Mon Sep 17 00:00:00 2001 From: Saurabh Date: Fri, 3 Jul 2026 16:26:47 +0530 Subject: [PATCH 2/2] fix: wrap mobile nav items to prevent clipping in bottom sheet --- components/app/mobile-nav.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/app/mobile-nav.tsx b/components/app/mobile-nav.tsx index c88397b..1b41f8f 100644 --- a/components/app/mobile-nav.tsx +++ b/components/app/mobile-nav.tsx @@ -39,7 +39,7 @@ export function MobileNav() { snapPoints={[0.85]} >
    -