import type { Metadata } from "next"; import Link from "next/link"; import { ArrowRight, FileText, AudioLines, ImageIcon, Languages, Repeat, ListMusic, Share2, Users, KeyRound, CreditCard, Edit3, Download, Sparkles, Mic2, Radio, MessagesSquare, Palette, Globe2, Workflow, Gauge, ShieldCheck, Wand2, Mail, Hash, Clock, Check, Rocket, } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; export const metadata: Metadata = { title: "Features", description: "Everything PodcastYes does — AI scriptwriting, realistic multi-voice audio, cover art, repurposing, a season generator, 13+ languages, team white-label, an API, and more.", }; const HERO_IMG = "https://images.unsplash.com/photo-1590602847861-f357a9332bbc?auto=format&fit=crop&w=1600&q=80"; const AUDIO_IMG = "https://images.unsplash.com/photo-1598488035139-bdbb2231ce04?auto=format&fit=crop&w=1400&q=80"; const TEAM_IMG = "https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1400&q=80"; export default function FeaturesPage() { return ( <> {/* 1 — Hero */}
Every feature, one workflow

The entire podcast studio, powered by AI

Write, narrate, illustrate, edit, repurpose, and publish — PodcastYes replaces a writer, a voice actor, an editor, and a designer with one clean, end-to-end workflow. No microphone, no software, no skills required.

Free plan — 3 scripts & 1 audio generation / month. No card required.

{/* eslint-disable-next-line @next/next/no-img-element */} Studio condenser microphone

Topic → episode

in minutes, not hours

{/* 2 — Model strip */}

Best-in-class AI, stitched into one product

{/* 3 — AI script generation */} {/* 4 — Multi-voice audio (with image) */} {/* 5 — Formats */}
{/* 6 — Cover art */} } /> {/* 7 — Languages */}
{[ "English", "Spanish", "French", "German", "Italian", "Portuguese", "Dutch", "Polish", "Hindi", "Japanese", "Korean", "Chinese", "Arabic", "Turkish", "Russian", ].map((l) => ( {l} ))}
{/* 8 — Workflow */}
{/* 9 — Script editor */} {/* 10 — Player & downloads */} } /> {/* 11 — Repurposing */}
{/* 12 — Series generator */} {/* 13 — Share & publish */} } /> {/* 14 — Teams / white-label (with image) */} {/* 15 — API */} } /> {/* 16 — Plans, usage & billing */}
Transparent & flexible

Clear limits, your choice of payment

Start free and upgrade as you grow. A live usage dashboard shows exactly where you stand against your plan, with friendly nudges before you hit a limit. Pay with a card via Stripe or with PayPal — whichever you prefer.

{/* 17 — Everything included grid */}
{EVERYTHING.map((f) => (

{f.title}

{f.body}

))}
{/* 18 — CTA */}

See it produce your first episode

Spin up a fully produced episode on the free plan in a couple of minutes — then decide.

); } /* ─────────────────────────── helpers ─────────────────────────── */ function Eyebrow({ children }: { children: React.ReactNode }) { return

{children}

; } function SectionHeading({ eyebrow, title, subtitle, }: { eyebrow: string; title: string; subtitle: string; }) { return (
{eyebrow}

{title}

{subtitle}

); } function FeatureBand({ eyebrow, icon: Icon, title, body, bullets, image, imageAlt, visual, reverse, tinted, }: { eyebrow: string; icon: React.ComponentType<{ className?: string }>; title: string; body: string; bullets?: string[]; image?: string; imageAlt?: string; visual?: React.ReactNode; reverse?: boolean; tinted?: boolean; }) { return (
{eyebrow}

{title}

{body}

{bullets && (
    {bullets.map((b) => (
  • {b}
  • ))}
)}
{image ? (
{/* eslint-disable-next-line @next/next/no-img-element */} {imageAlt
) : ( visual )}
); } function ModelChip({ icon: Icon, name, role, }: { icon: React.ComponentType<{ className?: string }>; name: string; role: string; }) { return (

{name}

{role}

); } function FormatCard({ icon: Icon, title, body, }: { icon: React.ComponentType<{ className?: string }>; title: string; body: string; }) { return (

{title}

{body}

); } function StepCard({ n, icon: Icon, title, body, }: { n: string; icon: React.ComponentType<{ className?: string }>; title: string; body: string; }) { return (
{n}

{title}

{body}

); } function FeatureChip({ icon: Icon, label, }: { icon: React.ComponentType<{ className?: string }>; label: string; }) { return ( {label} ); } function MiniStat({ value, label }: { value: string; label: string }) { return (

{value}

{label}

); } /* lightweight, dependency-free "product" visuals for image-less bands */ function ArtVisual() { return (
{["from-brand/30 to-brand/5", "from-foreground/20 to-foreground/5", "from-amber-400/30 to-amber-400/5", "from-emerald-400/30 to-emerald-400/5"].map( (g, i) => (
) )}
); } function PlayerVisual() { return (

The history of coffee, ep. 1

12:04 · solo · EN

{Array.from({ length: 48 }).map((_, i) => ( ))}
); } function ShareVisual() { return (
podcastyes.app/p/aZ9k…
Public

Your episode, live for anyone

no login required

); } function ApiVisual() { return (
POST /api/v1/episodes
        {`curl -X POST https://podcastyes.app/api/v1/episodes \\
  -H "Authorization: Bearer pky_live_…" \\
  -d '{
    "topic": "Why deep work matters",
    "format": "SOLO",
    "language": "en"
  }'

→ 201  { "id": "ep_8fk2…", "status": "QUEUED" }`}
      
); } const EVERYTHING = [ { icon: FileText, title: "GPT-4 scripts", body: "Structured, spoken-word scripts in seconds." }, { icon: AudioLines, title: "Multi-voice audio", body: "14+ realistic voices, multi-speaker." }, { icon: ImageIcon, title: "AI cover art", body: "Bespoke DALL·E artwork per episode." }, { icon: Languages, title: "13+ languages", body: "Native scripts and narration." }, { icon: Edit3, title: "Script editor", body: "Edit, regenerate sections, re-record." }, { icon: Download, title: "MP3 + ZIP export", body: "Audio, art, transcript & notes." }, { icon: Repeat, title: "Repurposing", body: "Blog, social thread, newsletter." }, { icon: ListMusic, title: "Series generator", body: "Plan whole seasons from one prompt." }, { icon: Share2, title: "Public share pages", body: "No-login listen links, branded." }, { icon: Users, title: "Team workspace", body: "5 seats, invitations, roles." }, { icon: Palette, title: "White-label", body: "Your brand color, logo, no PodcastYes." }, { icon: KeyRound, title: "Developer API", body: "Generate episodes programmatically." }, { icon: Gauge, title: "Usage dashboard", body: "Live meters and limit nudges." }, { icon: CreditCard, title: "Stripe & PayPal", body: "Pay your way; cancel anytime." }, { icon: Sparkles, title: "Live generation", body: "Watch each stage stream in real time." }, { icon: ShieldCheck, title: "Yours to keep", body: "Download and publish anywhere." }, ];