261 lines
11 KiB
TypeScript
261 lines
11 KiB
TypeScript
import Link from 'next/link';
|
|
import Header from '@/components/Header';
|
|
import Footer from '@/components/Footer';
|
|
|
|
export const metadata = {
|
|
title: 'Production Crew & Vendor Marketplace | AV Beat',
|
|
description:
|
|
'Find broadcast and production crew, vendors, jobs, and gig opportunities. The professional marketplace built for the broadcast industry.',
|
|
};
|
|
|
|
const CATEGORIES = [
|
|
{ icon: '🎥', label: 'Camera & Lighting', count: 'DPs, Operators, Gaffers' },
|
|
{ icon: '🎙️', label: 'Audio', count: 'Mixers, Boom Ops, Sound Designers' },
|
|
{ icon: '🎬', label: 'Directing & Production', count: 'Directors, Producers, ADs' },
|
|
{ icon: '✂️', label: 'Post Production', count: 'Editors, Colorists, VFX' },
|
|
{ icon: '📡', label: 'Broadcast & Live', count: 'TDs, Engineers, MCOs' },
|
|
{ icon: '🏢', label: 'Vendors & Companies', count: 'Rental Houses, Post Facilities' },
|
|
];
|
|
|
|
const STATS = [
|
|
{ value: 'Phase 1', label: 'MVP Launch' },
|
|
{ value: 'Free', label: 'To Join' },
|
|
{ value: 'NAB', label: 'Official Media Partner' },
|
|
{ value: '2025', label: 'Built for Today' },
|
|
];
|
|
|
|
export default function MarketplacePage() {
|
|
return (
|
|
<div className="min-h-screen bg-[#0d0d0d] text-white">
|
|
<Header />
|
|
{/* Hero */}
|
|
<section className="relative pt-24 pb-20 px-4 overflow-hidden">
|
|
<div className="absolute inset-0 bg-gradient-to-b from-[#CC0000]/10 to-transparent pointer-events-none" />
|
|
<div className="max-w-6xl mx-auto text-center relative z-10">
|
|
<div className="inline-flex items-center gap-2 bg-[#CC0000]/20 border border-[#CC0000]/40 rounded-full px-4 py-1.5 text-sm text-[#CC0000] font-semibold mb-6">
|
|
<span className="w-2 h-2 bg-[#CC0000] rounded-full animate-pulse" />
|
|
Now Live — Phase 1 MVP
|
|
</div>
|
|
<h1 className="text-4xl md:text-6xl font-black uppercase tracking-tight mb-6 leading-none">
|
|
The Pro AV Industry's
|
|
<br />
|
|
<span className="text-[#CC0000]">Production Marketplace</span>
|
|
</h1>
|
|
<p className="text-lg md:text-xl text-gray-400 max-w-3xl mx-auto mb-10 leading-relaxed">
|
|
Find crew, hire vendors, post jobs, and land gigs — all in one place built by
|
|
pro AV professionals, for pro AV professionals.
|
|
</p>
|
|
<div className="flex flex-col sm:flex-row gap-4 justify-center">
|
|
<Link
|
|
href="/marketplace/search"
|
|
className="bg-[#CC0000] hover:bg-red-700 text-white font-bold px-8 py-4 rounded-lg text-lg transition-colors"
|
|
>
|
|
Find Crew & Vendors
|
|
</Link>
|
|
<Link
|
|
href="/marketplace/join"
|
|
className="bg-white/10 hover:bg-white/20 border border-white/20 text-white font-bold px-8 py-4 rounded-lg text-lg transition-colors"
|
|
>
|
|
Create Your Profile
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{/* Stats */}
|
|
<section className="border-y border-white/10 py-8">
|
|
<div className="max-w-6xl mx-auto px-4 grid grid-cols-2 md:grid-cols-4 gap-6">
|
|
{STATS?.map((s) => (
|
|
<div key={s?.label} className="text-center">
|
|
<div className="text-3xl font-black text-[#CC0000]">{s?.value}</div>
|
|
<div className="text-sm text-gray-400 mt-1">{s?.label}</div>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</section>
|
|
{/* Categories */}
|
|
<section className="py-16 px-4">
|
|
<div className="max-w-6xl mx-auto">
|
|
<h2 className="text-2xl font-black uppercase tracking-wide text-center mb-10">
|
|
Browse by Category
|
|
</h2>
|
|
<div className="grid grid-cols-2 md:grid-cols-3 gap-4">
|
|
{CATEGORIES?.map((cat) => (
|
|
<Link
|
|
key={cat?.label}
|
|
href={`/marketplace/search?category=${encodeURIComponent(cat?.label)}`}
|
|
className="bg-[#1a1a1a] hover:bg-[#222] border border-white/10 hover:border-[#CC0000]/40 rounded-xl p-6 transition-all group"
|
|
>
|
|
<div className="text-3xl mb-3">{cat?.icon}</div>
|
|
<div className="font-bold text-white group-hover:text-[#CC0000] transition-colors">
|
|
{cat?.label}
|
|
</div>
|
|
<div className="text-sm text-gray-500 mt-1">{cat?.count}</div>
|
|
</Link>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{/* Three Columns: Find / Post / Join */}
|
|
<section className="py-16 px-4 bg-[#111]">
|
|
<div className="max-w-6xl mx-auto grid md:grid-cols-3 gap-8">
|
|
<div className="text-center p-8">
|
|
<div className="w-16 h-16 bg-[#CC0000]/20 rounded-full flex items-center justify-center mx-auto mb-4 text-2xl">
|
|
🔍
|
|
</div>
|
|
<h3 className="text-xl font-bold mb-3">Find Talent</h3>
|
|
<p className="text-gray-400 text-sm leading-relaxed mb-6">
|
|
Search our directory of verified pro AV integrators, live production engineers, and display tech vendors.
|
|
Filter by location, specialty, rate, and union status.
|
|
</p>
|
|
<Link
|
|
href="/marketplace/search"
|
|
className="text-[#CC0000] font-semibold hover:underline text-sm"
|
|
>
|
|
Search Directory →
|
|
</Link>
|
|
</div>
|
|
|
|
<div className="text-center p-8 border-x border-white/10">
|
|
<div className="w-16 h-16 bg-[#CC0000]/20 rounded-full flex items-center justify-center mx-auto mb-4 text-2xl">
|
|
📋
|
|
</div>
|
|
<h3 className="text-xl font-bold mb-3">Post Jobs & Gigs</h3>
|
|
<p className="text-gray-400 text-sm leading-relaxed mb-6">
|
|
Post full-time positions or short-term crew calls. Reach thousands of qualified
|
|
pro AV professionals instantly.
|
|
</p>
|
|
<div className="flex flex-col gap-2">
|
|
<Link
|
|
href="/marketplace/jobs"
|
|
className="text-[#CC0000] font-semibold hover:underline text-sm"
|
|
>
|
|
Browse Jobs →
|
|
</Link>
|
|
<Link
|
|
href="/marketplace/gigs"
|
|
className="text-[#CC0000] font-semibold hover:underline text-sm"
|
|
>
|
|
Browse Gigs →
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="text-center p-8">
|
|
<div className="w-16 h-16 bg-[#CC0000]/20 rounded-full flex items-center justify-center mx-auto mb-4 text-2xl">
|
|
⭐
|
|
</div>
|
|
<h3 className="text-xl font-bold mb-3">Get Discovered</h3>
|
|
<p className="text-gray-400 text-sm leading-relaxed mb-6">
|
|
Create your free profile, get verified by our team, and start receiving leads from
|
|
clients and employers across the industry.
|
|
</p>
|
|
<Link
|
|
href="/marketplace/join"
|
|
className="text-[#CC0000] font-semibold hover:underline text-sm"
|
|
>
|
|
Create Profile →
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{/* Pricing teaser */}
|
|
<section className="py-16 px-4">
|
|
<div className="max-w-4xl mx-auto text-center">
|
|
<h2 className="text-2xl font-black uppercase tracking-wide mb-4">
|
|
Simple, Transparent Pricing
|
|
</h2>
|
|
<p className="text-gray-400 mb-10">
|
|
Start free. Upgrade when you're ready to grow.
|
|
</p>
|
|
<div className="grid md:grid-cols-3 gap-6">
|
|
{[
|
|
{
|
|
name: 'Free',
|
|
price: '$0',
|
|
period: 'forever',
|
|
features: ['Basic profile', 'Appear in search', '3 gig responses/month'],
|
|
cta: 'Get Started',
|
|
href: '/marketplace/join',
|
|
highlight: false,
|
|
},
|
|
{
|
|
name: 'Pro',
|
|
price: '$9.99',
|
|
period: '/month',
|
|
features: [
|
|
'Priority placement',
|
|
'Unlimited gig responses',
|
|
'Post jobs & gigs',
|
|
'Profile analytics',
|
|
],
|
|
cta: 'Go Pro',
|
|
href: '/marketplace/join',
|
|
highlight: true,
|
|
},
|
|
{
|
|
name: 'Studio / Vendor',
|
|
price: '$29.99',
|
|
period: '/month',
|
|
features: [
|
|
'Company profile',
|
|
'Up to 5 staff profiles',
|
|
'Featured placement',
|
|
'Priority lead routing',
|
|
],
|
|
cta: 'Get Started',
|
|
href: '/marketplace/join',
|
|
highlight: false,
|
|
},
|
|
]?.map((plan) => (
|
|
<div
|
|
key={plan?.name}
|
|
className={`rounded-xl p-6 border ${
|
|
plan?.highlight
|
|
? 'bg-[#CC0000]/10 border-[#CC0000] relative'
|
|
: 'bg-[#1a1a1a] border-white/10'
|
|
}`}
|
|
>
|
|
{plan?.highlight && (
|
|
<div className="absolute -top-3 left-1/2 -translate-x-1/2 bg-[#CC0000] text-white text-xs font-bold px-3 py-1 rounded-full">
|
|
MOST POPULAR
|
|
</div>
|
|
)}
|
|
<div className="font-bold text-lg mb-1">{plan?.name}</div>
|
|
<div className="text-3xl font-black text-[#CC0000]">
|
|
{plan?.price}
|
|
<span className="text-sm text-gray-400 font-normal">{plan?.period}</span>
|
|
</div>
|
|
<ul className="mt-4 mb-6 space-y-2">
|
|
{plan?.features?.map((f) => (
|
|
<li key={f} className="text-sm text-gray-300 flex items-center gap-2">
|
|
<span className="text-[#CC0000]">✓</span> {f}
|
|
</li>
|
|
))}
|
|
</ul>
|
|
<Link
|
|
href={plan?.href}
|
|
className={`block text-center py-2.5 rounded-lg font-bold text-sm transition-colors ${
|
|
plan?.highlight
|
|
? 'bg-[#CC0000] hover:bg-red-700 text-white'
|
|
: 'bg-white/10 hover:bg-white/20 text-white'
|
|
}`}
|
|
>
|
|
{plan?.cta}
|
|
</Link>
|
|
</div>
|
|
))}
|
|
</div>
|
|
|
|
{/* Stripe coming soon notice */}
|
|
<div className="mt-8 bg-[#1a1a1a] border border-yellow-500/30 rounded-lg p-4 text-sm text-yellow-400">
|
|
💳 <strong>Billing coming soon</strong> — Pro and Studio plans are available now.
|
|
Payment processing will be enabled shortly. Create your free profile today and upgrade
|
|
when billing launches.
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<Footer />
|
|
</div>
|
|
);
|
|
}
|