Skip to content

Commit 51e4865

Browse files
Complete landing page with full product experience
πŸ”₯ COMPLETE LANDING PAGE SECTIONS: βœ… ProofBar - Trust signals (benchmarks, creator split, refunds) βœ… AssetStrip - Featured assets with fire gradient previews βœ… HowItWorks - 4-step process (Generate β†’ Gate β†’ Publish β†’ Iterate) βœ… Bundles - Product Hunt, ArchViz, Game Starter packs βœ… FAQ - License, refunds, payouts, AI disclosure 🎨 VISUAL UPGRADES: - Hotter fire gradient (#FF2A15 β†’ #FF5A14 β†’ #FFC14D) - All bundles use animated fire gradient backgrounds - Consistent glass morphism styling throughout πŸ“Š ANALYTICS TRACKING: - Added data-evt attributes for GA4/PostHog tracking - CTA click tracking across all sections - Bundle preview and activate button tracking Landing page now feels like a complete marketplace platform ready for launch.
1 parent c5329b7 commit 51e4865

File tree

6 files changed

+113
-5
lines changed

6 files changed

+113
-5
lines changed

β€Žanymate_system/anymate_landing-page/src/App.tsxβ€Ž

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,26 @@ import ActivatePanel from './components/ActivatePanel';
99
import { AdminDashboard } from './components/AdminDashboard';
1010
import Wordmark from './components/Wordmark';
1111
import AssetStrip from './components/AssetStrip';
12+
import ProofBar from './components/ProofBar';
13+
import HowItWorks from './components/HowItWorks';
14+
import Bundles from './components/Bundles';
15+
import FAQ from './components/FAQ';
1216

1317
function HeaderBar(){
1418
const [open, setOpen] = useState(false);
1519
return (
1620
<header className="flex justify-between items-center px-4 py-3 sticky top-0 bg-black/60 backdrop-blur-md z-50 border-b border-white/10">
1721
<div><Wordmark /></div>
1822
<nav className="flex gap-4 items-center">
19-
<Link to="/waitlist" className="text-white hover:text-emerald-400 transition-colors">
23+
<Link to="/waitlist" className="text-white hover:text-emerald-400 transition-colors" data-evt="cta_waitlist_header">
2024
Get early access
2125
</Link>
2226
<button
2327
onClick={() => setOpen(true)}
2428
aria-expanded={open}
2529
aria-controls="activate-panel"
2630
className="px-4 py-2 border border-white/20 bg-white/10 hover:bg-white/20 text-white rounded-lg transition-colors font-medium"
31+
data-evt="activate_open"
2732
>
2833
ACTIVATE
2934
</button>
@@ -41,7 +46,15 @@ function AppLayout() {
4146
<HeaderBar />
4247
<main className="px-4 md:px-6">{/* page content */}
4348
<Outlet />
44-
{onHome ? <AssetStrip /> : null}
49+
{onHome ? (
50+
<>
51+
<ProofBar />
52+
<AssetStrip />
53+
<HowItWorks />
54+
<Bundles />
55+
<FAQ />
56+
</>
57+
) : null}
4558
</main>
4659
</>
4760
);
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const bundles = [
2+
{ title: 'Product Hunt Launch Pack', blurb: 'Hero + ad set + welcome emails with proven hooks.', price: '$79' },
3+
{ title: 'ArchViz Client Pack', blurb: 'Outcomes-first LP sections + showcase grid + inquiry CTA.', price: '$59' },
4+
{ title: 'Game Starter Pack', blurb: 'Store page hero + trailer copy + UA ad set.', price: '$69' },
5+
];
6+
7+
export default function Bundles(){
8+
return (
9+
<section className="mx-auto max-w-6xl mt-12">
10+
<div className="flex items-baseline justify-between mb-3">
11+
<h2 className="text-xl md:text-2xl font-semibold text-white/90">Bundles (coming online)</h2>
12+
<a href="/waitlist" className="text-sm text-sky-300 hover:underline" data-evt="cta_waitlist_bundles">Join the drop β†’</a>
13+
</div>
14+
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
15+
{bundles.map((b, i) => (
16+
<article key={i} className="rounded-xl border border-white/10 bg-white/5 p-4">
17+
<div className="h-36 rounded-lg border border-white/10 bg-[linear-gradient(90deg,var(--fire-1),var(--fire-2),var(--fire-3))] animate-flame" />
18+
<h3 className="text-white font-semibold mt-3">{b.title}</h3>
19+
<p className="text-white/70 text-sm mt-1">{b.blurb}</p>
20+
<div className="mt-3 flex items-center justify-between">
21+
<span className="text-white/80 text-sm">{b.price}</span>
22+
<a href="/waitlist" className="text-sm px-3 py-1 rounded-md border border-white/15 bg-white/5 hover:bg-white/10" data-evt="preview_bundle">Preview</a>
23+
</div>
24+
</article>
25+
))}
26+
</div>
27+
</section>
28+
);
29+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const Q = [
2+
['What license comes with a pack?',
3+
'Non-exclusive, perpetual commercial use on your projects. Resale outside the marketplace is not allowed.'],
4+
['Do you allow refunds?',
5+
'If a pack doesn't improve your flow in 14 days, we'll swap or credit your account.'],
6+
['How do creators get paid?',
7+
'Stripe Connect (Express). Payouts typically clear after a short refund window.'],
8+
['Do you disclose AI usage?',
9+
'Yes. Listings include an AI disclosure and any provenance we have.']
10+
];
11+
12+
export default function FAQ(){
13+
return (
14+
<section className="mx-auto max-w-4xl mt-12 md:mt-16">
15+
<h2 className="text-xl md:text-2xl font-semibold text-white/90 mb-4">FAQ</h2>
16+
<div className="divide-y divide-white/10 border border-white/10 rounded-xl bg-white/5">
17+
{Q.map(([q,a], i) => (
18+
<details key={i} className="p-4">
19+
<summary className="cursor-pointer text-white/90">{q}</summary>
20+
<p className="mt-2 text-white/70 text-sm">{a}</p>
21+
</details>
22+
))}
23+
</div>
24+
</section>
25+
);
26+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const steps = [
2+
{ n: 1, t: 'Generate', d: 'Brief in. Create ad sets, LP sections, emails.' },
3+
{ n: 2, t: 'Gate', d: 'Auto-checks: clarity, proof, UVs/LODs/maps if 3D.' },
4+
{ n: 3, t: 'Publish / Buy', d: 'List as a pack or buy verified packs.' },
5+
{ n: 4, t: 'Iterate', d: 'Benchmarks + analytics guide the next rev.' }
6+
];
7+
8+
export default function HowItWorks(){
9+
return (
10+
<section className="mx-auto max-w-6xl mt-12 md:mt-16">
11+
<h2 className="text-xl md:text-2xl font-semibold text-white/90 mb-4">How it works</h2>
12+
<ol className="grid grid-cols-1 md:grid-cols-4 gap-4">
13+
{steps.map(s => (
14+
<li key={s.n} className="rounded-xl border border-white/10 bg-white/5 p-4">
15+
<div className="text-white/60 text-sm">Step {s.n}</div>
16+
<div className="text-white font-semibold mt-1">{s.t}</div>
17+
<p className="text-white/70 text-sm mt-2">{s.d}</p>
18+
</li>
19+
))}
20+
</ol>
21+
</section>
22+
);
23+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
export default function ProofBar(){
2+
return (
3+
<section className="mx-auto max-w-6xl mt-8">
4+
<ul className="grid grid-cols-1 md:grid-cols-3 gap-3">
5+
<li className="rounded-md border border-white/10 bg-white/5 px-3 py-2 text-sm text-white/80">
6+
βœ… Verified Benchmarks β€” packs list CVR/CTR when available
7+
</li>
8+
<li className="rounded-md border border-white/10 bg-white/5 px-3 py-2 text-sm text-white/80">
9+
πŸ’Έ Creator Split β€” 90/10 for founding creators (90 days)
10+
</li>
11+
<li className="rounded-md border border-white/10 bg-white/5 px-3 py-2 text-sm text-white/80">
12+
↩️ Refunds/Credits β€” if a pack doesn't lift CVR, we swap/credit
13+
</li>
14+
</ul>
15+
</section>
16+
);
17+
}

β€Žanymate_system/anymate_landing-page/src/index.cssβ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
@layer base {
66
:root {
7-
--fire-1: #FF3B1F; /* deeper red/orange */
8-
--fire-2: #FF6A1A; /* hot orange */
9-
--fire-3: #FFD166; /* ember gold */
7+
--fire-1: #FF2A15; /* more red */
8+
--fire-2: #FF5A14; /* hot orange */
9+
--fire-3: #FFC14D; /* gold/ember */
1010
--background: 222.2 84% 4.9%;
1111
--foreground: 210 40% 98%;
1212
--card: 222.2 84% 4.9%;

0 commit comments

Comments
Β (0)