feat: add No Teeth Skateboarding as first Friend, clear Partners

- Partners: removed all entries, now shows 4 placeholder slots
- Friends: added No Teeth Skateboarding with red transparent logo
  linking to instagram.com/noteethskateboarding
- Friends grid: always shows real entries + fills remaining slots to 5
  with "Coming soon" placeholders

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
This commit is contained in:
shakespeare.diy 2026-06-27 17:57:41 +07:00
parent baf4c5e10d
commit 089c6c234c

View file

@ -40,42 +40,19 @@ const COLLABORATORS: Collaborator[] = [
];
const PARTNERS: Partner[] = [
{
name: 'Geyser',
logo: 'https://geyser.fund/logo-brand.svg',
url: 'https://geyser.fund/project/skatespots',
description: 'Bitcoin Lightning crowdfunding',
},
{
name: 'Angor',
logo: '',
url: 'https://angor.io/',
description: 'Bitcoin crowdfunding platform',
},
{
name: 'Zapstore',
logo: '',
url: 'https://zapstore.dev/apps/org.skatespots.app',
description: 'Open-source app distribution',
},
{
name: 'ContextVM',
logo: '',
url: 'https://contextvm.org/s/e3564bb877adb0c99a7e4973ccb22e516d7d9eca0027d0bd62a04174ed670530',
description: 'Nostr AI infrastructure',
},
{
name: 'MKStack',
logo: '',
url: 'https://soapbox.pub/mkstack',
description: 'Nostr client framework',
},
// Add partners here
// Format: { name: 'Example', logo: 'https://...', url: 'https://...', description: 'Short description' }
// Logo: PNG/WebP transparent background preferred
];
const FRIENDS: Friend[] = [
// Add friends here once logos are ready
// Format: { name: 'Example', logo: 'https://example.com/logo.png', url: 'https://example.com', tagline: 'Short description' }
// Logo requirements: PNG/WebP with transparent background, min 200×200px square preferred
{
name: 'No Teeth Skateboarding',
logo: 'https://blossom.dreamith.to/61bb7055930c442dfe1dfe5b8a8be5417f9b62f68ed79dc4ffbbddce5d4f122c.png',
url: 'https://www.instagram.com/noteethskateboarding/',
tagline: 'Skateboarding crew',
},
// Add more friends here
];
// ─── Helpers ─────────────────────────────────────────────────────────────────
@ -434,11 +411,24 @@ export default function SupportersPage() {
color="#ff6600"
/>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3">
{PARTNERS.map((p) => (
<PartnerCard key={p.name} partner={p} />
))}
</div>
{PARTNERS.length > 0 ? (
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3">
{PARTNERS.map((p) => (
<PartnerCard key={p.name} partner={p} />
))}
</div>
) : (
<>
<div className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3 mb-4">
{Array.from({ length: 4 }).map((_, i) => (
<PlaceholderCard key={i} label="Coming soon" />
))}
</div>
<div className="rounded-xl border border-dashed border-[#ff6600]/20 p-6 text-center">
<p className="text-gray-500 text-sm">Want to partner with SkateSpots? Reach out on Nostr.</p>
</div>
</>
)}
</section>
{/* ── 4. Friends ── */}
@ -450,28 +440,21 @@ export default function SupportersPage() {
color="#ccff00"
/>
{FRIENDS.length > 0 ? (
<div className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3">
{FRIENDS.map((f) => (
<FriendCard key={f.name} friend={f} />
))}
</div>
) : (
<>
{/* Placeholder grid — remove once real entries are added */}
<div className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 mb-4">
{Array.from({ length: 5 }).map((_, i) => (
<PlaceholderCard key={i} label="Coming soon" />
))}
</div>
<div className="rounded-xl border border-dashed border-[#ccff00]/20 p-6 text-center">
<p className="text-gray-500 text-sm mb-1">Want to be listed here?</p>
<p className="text-xs text-gray-600">
Send a logo (PNG/WebP, transparent background, min 200×200px) and your URL via DM on Nostr.
</p>
</div>
</>
)}
<div className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3">
{FRIENDS.map((f) => (
<FriendCard key={f.name} friend={f} />
))}
{/* Fill remaining slots up to 5 with placeholders */}
{FRIENDS.length < 5 && Array.from({ length: 5 - FRIENDS.length }).map((_, i) => (
<PlaceholderCard key={`ph-${i}`} label="Coming soon" />
))}
</div>
<div className="mt-4 rounded-xl border border-dashed border-[#ccff00]/20 p-5 text-center">
<p className="text-gray-500 text-sm mb-1">Want to be listed here?</p>
<p className="text-xs text-gray-600">
Send a logo (PNG/WebP, transparent background, min 200×200px) and your URL via DM on Nostr.
</p>
</div>
</section>
{/* ── Mission ── */}