Skip to content

Commit 21c6280

Browse files
jarvisclaude
authored andcommitted
feat: standardize ecosystem cross-sell footer with all product links
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent b94fb9a commit 21c6280

2 files changed

Lines changed: 66 additions & 37 deletions

File tree

app/page.tsx

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { PayNow } from '@/components/paynow'
99
import EmailCapture from '@/components/EmailCapture'
1010
import { FAQAccordion } from '@/components/FAQAccordion'
1111
import { SocialShare } from '@/components/SocialShare'
12+
import { EcosystemFooter } from '@/components/EcosystemFooter'
1213

1314
const heroCodeLines = [
1415
'import { withX402 } from "x402-next"',
@@ -684,43 +685,7 @@ export default function LandingPage() {
684685
</div>
685686
</section>
686687

687-
{/* Ecosystem Cross-sell */}
688-
<section className="border-t border-zinc-700 py-12 sm:py-16">
689-
<motion.div
690-
initial={{ opacity: 0, y: 30 }}
691-
animate={{ opacity: 1, y: 0 }}
692-
transition={{ duration: 0.5 }}
693-
className="max-w-6xl mx-auto px-4 text-center"
694-
>
695-
<p className="text-sm text-zinc-400 uppercase tracking-wider mb-4">From the AI Business Factory</p>
696-
<div className="grid grid-cols-2 md:grid-cols-3 gap-3 sm:gap-4 max-w-2xl mx-auto">
697-
<motion.a href="https://promptforge.vercel.app" target="_blank" rel="noopener" whileHover={{ scale: 1.05 }} className="p-3 rounded-lg border border-zinc-700 hover:border-amber-500/60 transition-colors text-left">
698-
<p className="font-medium text-white text-sm">PromptForge</p>
699-
<p className="text-xs text-zinc-400">200+ AI Prompts</p>
700-
</motion.a>
701-
<motion.a href="https://siteforge.vercel.app" target="_blank" rel="noopener" whileHover={{ scale: 1.05 }} className="p-3 rounded-lg border border-zinc-700 hover:border-amber-500/60 transition-colors text-left">
702-
<p className="font-medium text-white text-sm">SiteForge</p>
703-
<p className="text-xs text-zinc-400">AI Landing Pages in 60s</p>
704-
</motion.a>
705-
<motion.a href="https://aitoolsradar.vercel.app" target="_blank" rel="noopener" whileHover={{ scale: 1.05 }} className="p-3 rounded-lg border border-zinc-700 hover:border-amber-500/60 transition-colors text-left">
706-
<p className="font-medium text-white text-sm">AIToolsRadar</p>
707-
<p className="text-xs text-zinc-400">Compare 40+ AI Tools</p>
708-
</motion.a>
709-
<motion.a href="https://pageforge.vercel.app" target="_blank" rel="noopener" whileHover={{ scale: 1.05 }} className="p-3 rounded-lg border border-zinc-700 hover:border-amber-500/60 transition-colors text-left">
710-
<p className="font-medium text-white text-sm">PageForge</p>
711-
<p className="text-xs text-zinc-400">AI Page Generator</p>
712-
</motion.a>
713-
<motion.a href="https://agencysitegrader.vercel.app" target="_blank" rel="noopener" whileHover={{ scale: 1.05 }} className="p-3 rounded-lg border border-zinc-700 hover:border-amber-500/60 transition-colors text-left">
714-
<p className="font-medium text-white text-sm">Agency Site Grader</p>
715-
<p className="text-xs text-zinc-400">Grade Your Website</p>
716-
</motion.a>
717-
<motion.a href="https://pricingcalculator.vercel.app" target="_blank" rel="noopener" whileHover={{ scale: 1.05 }} className="p-3 rounded-lg border border-zinc-700 hover:border-amber-500/60 transition-colors text-left">
718-
<p className="font-medium text-white text-sm">Pricing Calculator</p>
719-
<p className="text-xs text-zinc-400">Freelance Pricing</p>
720-
</motion.a>
721-
</div>
722-
</motion.div>
723-
</section>
688+
<EcosystemFooter currentProduct="CryptoPayKit" />
724689
</div>
725690
)
726691
}

components/EcosystemFooter.tsx

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
'use client'
2+
3+
interface Product {
4+
name: string
5+
description: string
6+
href: string
7+
price?: string
8+
}
9+
10+
const PRODUCTS: Product[] = [
11+
{ name: 'RulesForge', description: 'AI coding rules generator', href: 'https://rulesforge.vercel.app', price: '$29' },
12+
{ name: 'AgentAudit', description: 'AI agent security scanner', href: 'https://agentaudit-five.vercel.app', price: 'Free scan' },
13+
{ name: 'CryptoPayKit', description: 'x402 crypto payment toolkit', href: 'https://cryptopaykit.vercel.app', price: '$49' },
14+
{ name: 'PromptForge', description: '200+ AI prompts library', href: 'https://promptforge-indol.vercel.app', price: '$19' },
15+
{ name: 'PageForge', description: 'AI landing page generator', href: 'https://pageforge-phi.vercel.app', price: '$29' },
16+
{ name: 'OGForge', description: 'AI social card generator', href: 'https://ogforge.vercel.app', price: '$9' },
17+
{ name: 'ScreenForge', description: 'App Store screenshots', href: 'https://screenforge-ten.vercel.app', price: '$19' },
18+
{ name: 'AIToolsRadar', description: 'Compare 40+ AI tools', href: 'https://aitoolsradar-zeta.vercel.app', price: 'Free' },
19+
]
20+
21+
interface EcosystemFooterProps {
22+
currentProduct?: string // name of the current product to exclude from the list
23+
}
24+
25+
export function EcosystemFooter({ currentProduct }: EcosystemFooterProps) {
26+
const otherProducts = PRODUCTS.filter(p => p.name !== currentProduct)
27+
28+
return (
29+
<section className="border-t border-zinc-800/50 mt-12">
30+
<div className="mx-auto max-w-6xl px-4 sm:px-6 py-12 sm:py-16">
31+
<div className="text-center mb-8">
32+
<p className="text-sm text-zinc-500 uppercase tracking-wider">From AI Business Factory</p>
33+
<h3 className="mt-2 text-lg font-bold text-white tracking-tight">More tools for builders</h3>
34+
</div>
35+
<div className="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3">
36+
{otherProducts.map((product) => (
37+
<a
38+
key={product.name}
39+
href={product.href}
40+
target="_blank"
41+
rel="noopener noreferrer"
42+
className="group rounded-xl border border-zinc-800 bg-zinc-900/30 p-4 transition-all hover:border-zinc-600 hover:bg-zinc-900/60"
43+
>
44+
<div className="flex items-center justify-between mb-1.5">
45+
<span className="text-sm font-semibold text-white group-hover:text-zinc-100">{product.name}</span>
46+
{product.price && <span className="text-xs text-zinc-500">{product.price}</span>}
47+
</div>
48+
<p className="text-xs text-zinc-500 leading-relaxed">{product.description}</p>
49+
</a>
50+
))}
51+
</div>
52+
53+
<div className="mt-10 pt-6 border-t border-zinc-800/50 flex flex-col sm:flex-row items-center justify-between gap-4 text-xs text-zinc-500">
54+
<p>&copy; {new Date().getFullYear()} AI Business Factory. All rights reserved.</p>
55+
<div className="flex items-center gap-4">
56+
<a href="/privacy" className="hover:text-white transition-colors">Privacy</a>
57+
<a href="/terms" className="hover:text-white transition-colors">Terms</a>
58+
<span>Card, Apple Pay, USDC accepted</span>
59+
</div>
60+
</div>
61+
</div>
62+
</section>
63+
)
64+
}

0 commit comments

Comments
 (0)