import Link from "next/link"; import { Mic2, Plus, Sparkles, ArrowRight } from "lucide-react"; import { requireAuth } from "@/lib/auth/guards"; import { getEffectivePlan } from "@/lib/billing/subscription"; import { prisma } from "@/lib/db"; import { PageHeader } from "@/components/app/page-header"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { EpisodeStatusBadge } from "@/components/app/episode-status-badge"; export default async function DashboardPage() { const session = await requireAuth(); const { plan, key } = await getEffectivePlan( session.user.id, session.session.activeOrganizationId ); const [episodeCount, recent] = await Promise.all([ prisma.episode.count({ where: { userId: session.user.id } }), prisma.episode.findMany({ where: { userId: session.user.id }, orderBy: { createdAt: "desc" }, take: 5, select: { id: true, title: true, status: true, format: true, createdAt: true }, }), ]); const firstName = session.user.name.split(" ")[0]; return ( <> New episode } />
Episodes created

{episodeCount}

Current plan

{plan.name}

{key === "free" && ( )}
Usage this month
Recent episodes {recent.length === 0 ? (

No episodes yet

Create your first AI-produced episode to get started.

) : (
    {recent.map((ep) => (
  • {ep.title}

    {ep.format.replace("_", "-").toLowerCase()} ยท{" "} {ep.createdAt.toLocaleDateString()}

  • ))}
)}
); }