/* global React, Wordmark, Eyebrow, LockPill, Icon, IntentBadge, INTENT_META, LockTile, TrustStrip, Footer, formatPhone */ const { useState, useEffect, useMemo } = React; // ═══════════════════════════════════════════════════════════ // BUYER LANDING // ═══════════════════════════════════════════════════════════ const BuyerLanding = ({ bp, navigate, accent }) => { const isMobile = bp === 'mobile'; const isTablet = bp === 'tablet'; const padX = isMobile ? 24 : isTablet ? 56 : 80; return (
{/* Top nav */}
{!isMobile && (
{ e.preventDefault(); navigate('seller-landing'); }}>For sellers { e.preventDefault(); navigate('buyer-signin'); }}>Sign in
)}
{/* Hero */}
Institutional Buyer Access

Proprietary deal flow from owners not yet on the market.

Submit your mandate. We'll match you with confidential sellers actively exploring exits — before they engage a banker.

Free to register · No subscription · Verified counter-parties only
{/* Why buyside — 4 points */}
Why Buyside

A different kind of deal pipeline — narrower, warmer, and never public.

{[ { n: '01', t: 'Pre-mandate sellers', b: "Owners arrive curious, not committed. Most haven't engaged a banker. You see them before the auction starts." }, { n: '02', t: 'No subscription fee', b: 'Buyside is free for verified buyers. We monetize through sell-side advisory partnerships, not buyer subscriptions.' }, { n: '03', t: 'Anonymous double-blind', b: 'Sellers stay confidential until mutual interest is confirmed. You stay confidential until they say yes.' }, { n: '04', t: 'Advisor-facilitated', b: 'Every introduction is brokered by a partner advisor. No cold outreach. No leaked information. Clean process.' }, ].map((p, i) => (
{p.n}

{p.t}

{p.b}

))}
{/* Buyer types */}
Who we work with

Verified institutional buyers across four categories.

{[ { t: 'PE Firms', b: 'Lower & middle-market. Industry-focused or generalist. Platform & add-on mandates welcome.' }, { t: 'Search Funds', b: 'Self-funded, traditional, and accelerator-backed searchers. Most active category on Buyside.' }, { t: 'Family Offices', b: 'Single & multi-family. Long-hold, dividend-oriented, or strategic operating capital.' }, { t: 'Strategic Acquirers', b: 'Operating companies with M&A teams pursuing tuck-ins, regional expansion, or vertical integration.' }, ].map((c, i) => (
0{i+1}

{c.t}

{c.b}

))}
{/* CTA */}

Submit a mandate in under five minutes.

Verification typically completes within 24–48 hours. Once active, you'll see live matches as new sellers complete the flow.

{/* Verification statement */}
Verification statement. All buyers are verified for legitimacy and capital before mandates are activated. Submission does not guarantee inclusion. Buyside reserves the right to decline mandates that do not meet platform standards.
); }; // ═══════════════════════════════════════════════════════════ // BUYER MANDATE INTAKE FORM // ═══════════════════════════════════════════════════════════ const BuyerMandate = ({ bp, navigate, accent }) => { const isMobile = bp === 'mobile'; const isTablet = bp === 'tablet'; const padX = isMobile ? 24 : isTablet ? 56 : 80; const [section, setSection] = useState(0); const sections = [ { id: 'firm', label: 'Firm details' }, { id: 'criteria', label: 'Buy-box criteria' }, { id: 'verify', label: 'Verification' }, { id: 'contact', label: 'Contact' }, ]; const [data, setData] = useState({ firmName: '', firmType: 'PE', aum: '', recentDeals: '', industries: [], revMin: '', revMax: '', ebitdaMin: '', ebitdaMax: '', geography: [], structure: 'Majority', transition: 'Open', hold: '', docs: [], name: '', title: '', email: '', phone: '', }); const toggleArr = (key, v) => { const arr = data[key].includes(v) ? data[key].filter(x => x !== v) : [...data[key], v]; setData({ ...data, [key]: arr }); }; const INDUSTRIES = ['HVAC / Plumbing / Electrical', 'IT Services / MSP', 'Manufacturing', 'Distribution', 'Healthcare Services', 'Professional Services', 'Construction', 'Food & Beverage', 'Logistics', 'Consumer']; const STATES_GRID = ['CA','TX','FL','NY','IL','PA','OH','GA','NC','MI','NJ','VA','WA','AZ','MA','TN','IN','MO','MD','WI','CO','MN','SC','AL','LA','KY','OR','OK','CT','UT','IA','NV','AR','MS','KS','NM','NE','WV','ID','HI','NH','ME','MT','RI','DE','SD','ND','AK','VT','WY']; return (
{/* Sidebar nav */}
Mandate intake

Define your buy-box.

{sections.map((s, i) => ( ))}
{/* Form */}
{section === 0 && (
setData({...data, firmName: e.target.value})} />
{['PE Firm', 'Search Fund', 'Family Office', 'Strategic', 'HNW Individual'].map(t => ( ))}
setData({...data, aum: e.target.value})} />
setData({...data, recentDeals: e.target.value})} />
)} {section === 1 && (
{INDUSTRIES.map(ind => ( ))}
setData({...data, revMin: e.target.value})} />
setData({...data, revMax: e.target.value})} />
setData({...data, ebitdaMin: e.target.value})} />
setData({...data, ebitdaMax: e.target.value})} />
·
{STATES_GRID.map(s => ( ))}
{['Majority', 'Minority', 'Full', 'Open'].map(t => ( ))}
{['0 mo', '6–12 mo', '1–2 yr', '3+ yr', 'Open'].map(t => ( ))}
setData({...data, hold: e.target.value})} />
)} {section === 2 && (

Verification typically completes in 24–48 hours. Documents are reviewed by our verification team and stored encrypted. They are never shown to sellers.

{[ { t: 'Fund proof', d: 'LP commitment letter, fund formation docs, or audited financials.' }, { t: 'AUM proof', d: 'Most recent capital account statement or Form ADV.' }, { t: 'LinkedIn / bio', d: 'For individuals or first-time searchers.' }, ].map((d, i) => (
{d.t}
{d.d}
))}
)} {section === 3 && (
setData({...data, name: e.target.value})} />
setData({...data, title: e.target.value})} />
setData({...data, email: e.target.value})} />
setData({...data, phone: formatPhone(e.target.value)})} />
)} {/* Nav */}
{section < sections.length - 1 ? ( ) : ( )}
); }; // ═══════════════════════════════════════════════════════════ // BUYER DASHBOARD // ═══════════════════════════════════════════════════════════ const SELLER_MATCHES = [ { id: 'QM-2847', industry: 'HVAC / Plumbing / Electrical', state: 'TX', years: '15 yrs', rev: '$18M', ebitda: '$3.2M', transition: 'Stay 6–12 mo', intent: 'actively', score: 94, isNew: true, rep: 'R. Alvarado' }, { id: 'QM-2841', industry: 'IT Services / MSP', state: 'FL', years: '11 yrs', rev: '$24M', ebitda: '$5.1M', transition: 'Walk away', intent: 'soon', score: 91, isNew: true, rep: 'D. Mensah' }, { id: 'QM-2838', industry: 'Distribution', state: 'GA', years: '22 yrs', rev: '$42M', ebitda: '$6.8M', transition: 'Stay 1–2 yr', intent: 'soon', score: 88, isNew: false, rep: 'R. Alvarado' }, { id: 'QM-2829', industry: 'Manufacturing', state: 'NC', years: '18 yrs', rev: '$31M', ebitda: '$4.5M', transition: 'Open', intent: 'later', score: 84, isNew: false, rep: 'R. Alvarado' }, { id: 'QM-2821', industry: 'HVAC / Plumbing / Electrical', state: 'TN', years: '8 yrs', rev: '$11M', ebitda: '$2.1M', transition: 'Stay 3+ yr', intent: 'curious', score: 79, isNew: false, rep: 'D. Mensah' }, { id: 'QM-2814', industry: 'Healthcare Services', state: 'TX', years: '14 yrs', rev: '$22M', ebitda: '$4.0M', transition: 'Stay 6–12 mo', intent: 'soon', score: 76, isNew: false, rep: 'R. Alvarado' }, { id: 'QM-2806', industry: 'Professional Services', state: 'IL', years: '20 yrs', rev: '$15M', ebitda: '$2.8M', transition: 'Walk away', intent: 'curious', score: 72, isNew: false, rep: 'D. Mensah' }, { id: 'QM-2799', industry: 'Construction / Trades', state: 'AZ', years: '12 yrs', rev: '$28M', ebitda: '$3.9M', transition: 'Stay 1–2 yr', intent: 'later', score: 68, isNew: false, rep: 'R. Alvarado' }, ]; const BuyerDashboard = ({ bp, navigate, accent }) => { const isMobile = bp === 'mobile'; const isTablet = bp === 'tablet'; const padX = isMobile ? 16 : isTablet ? 32 : 48; const [tab, setTab] = useState('matches'); const [filter, setFilter] = useState('all'); const [interestedIds, setInterestedIds] = useState([]); const filtered = useMemo(() => { if (filter === 'all') return SELLER_MATCHES; return SELLER_MATCHES.filter(s => s.intent === filter); }, [filter]); return (
{/* Top header */}
{!isMobile && ( Verified buyer )}
P
{/* Firm header */}
PE Firm · Verified Mar 2026

Permanent Equity

$1.2B AUM · Lower-middle market industrials
{[ { v: '3', k: 'Active mandates' }, { v: '12', k: 'Matches this month', accent: true }, { v: '4', k: 'Conversations open' }, { v: '1', k: 'Under LOI' }, ].map((s, i) => (
{s.v}
{s.k}
))}
{/* Tabs */}
{[ { id: 'matches', label: 'Live matches', count: filtered.length }, { id: 'mandates', label: 'My mandates', count: 3 }, { id: 'how', label: 'How matching works' }, ].map(t => ( ))}
{tab === 'matches' && (
{/* Filter row */}
Intent: {[{id:'all',l:'All'},{id:'actively',l:'Active'},{id:'soon',l:'6–12mo'},{id:'later',l:'1–2yr'},{id:'curious',l:'Curious'}].map(f => ( ))}
{filtered.length} matches · sorted by score
{/* Match cards */}
{filtered.map((s) => { const expressed = interestedIds.includes(s.id); return (
{/* Left: score + identity */}
= 90 ? 'var(--emerald)' : s.score >= 80 ? 'var(--ink)' : '#efece4', color: s.score >= 80 ? 'var(--paper)' : 'var(--ink)', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0, }}>
{s.score}
FIT
SELLER {s.id} {s.isNew && NEW}
{s.industry}
{s.state} {s.years} owned {s.rev} rev / {s.ebitda} EBITDA
{/* Middle: intent + transition + rep */}
Transition: {s.transition}
Advisor: {s.rep}
{/* Right: CTA */} {!isTablet && (
{expressed ? ( ) : ( )}
)} {/* Tablet/mobile CTA full width */} {(isMobile || isTablet) && (
{expressed ? ( ) : ( )}
)}
); })}
)} {tab === 'mandates' && (
{[ { name: 'Industrials platform · Sun Belt', industries: 'HVAC, Manufacturing, Construction', size: '$15M–$50M rev · $3M–$10M EBITDA', geo: '12 states', status: 'active', perf: '47 matches · 8 conversations' }, { name: 'IT Services tuck-in', industries: 'IT Services / MSP', size: '$10M–$25M rev · $2M–$6M EBITDA', geo: 'Nationwide', status: 'active', perf: '23 matches · 3 conversations' }, { name: 'Healthcare services platform', industries: 'Healthcare Services', size: '$20M–$60M rev', geo: '8 states', status: 'paused', perf: '11 matches · 1 under LOI' }, ].map((m, i) => (

{m.name}

{m.status}
{m.industries} {m.size} {m.geo}
{m.perf}
))}
)} {tab === 'how' && (

How matching works.

{[ { n: '01', t: 'Sellers complete an 8-question match flow', b: 'Industry, size, location, owner-transition preference, and crucially — intent. Sellers stay anonymous; we only see what they tell us.' }, { n: '02', t: 'We compute fit against every active mandate', b: 'Industry & adjacency · EBITDA fit · Geography · Transition compatibility · Intent boost. Score is 0–100, sorted on your dashboard.' }, { n: '03', t: 'You express interest', b: 'A partner advisor reaches out to the seller on your behalf. They surface mutual interest before any identifying information is exchanged.' }, { n: '04', t: 'A licensed advisor facilitates the introduction', b: 'NDA → IOI → LOI → diligence → close. Buyside is never the broker. A vetted sell-side advisory partner holds all licensure and runs the process.' }, ].map((s) => (
{s.n}

{s.t}

{s.b}

))}
)}
); }; // ═══════════════════════════════════════════════════════════ // BUYER SIGN IN // ═══════════════════════════════════════════════════════════ const BuyerSignIn = ({ bp, navigate, accent }) => { const isMobile = bp === 'mobile'; const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [method, setMethod] = useState('password'); // 'password' | 'magic' const [magicSent, setMagicSent] = useState(false); return (
{/* Header */}
{/* Sign in card */}

Sign in

Access your buyer dashboard and live matches.

{/* Method toggle */}
{/* Email field */}
setEmail(e.target.value)} style={{ width: '100%' }} />
{/* Password field (only in password mode) */} {method === 'password' && (
setPassword(e.target.value)} style={{ width: '100%', paddingRight: 44 }} />
e.preventDefault()} style={{ fontSize: 12, color: 'var(--ink-4)' }}> Forgot password?
)} {/* Magic link sent confirmation */} {method === 'magic' && magicSent && (
Check your inbox. We sent a sign-in link to {email || 'your email'}. It expires in 10 minutes.
)} {/* Submit */} {/* Divider */}
New to Buyside?
{/* Trust note */}
Encrypted connection · SOC 2 compliant
); }; Object.assign(window, { BuyerLanding, BuyerMandate, BuyerDashboard, BuyerSignIn });