import { createClient } from "@supabase/supabase-js";
import Header from "@/components/Header";
import Footer from "@/components/Footer";
export const dynamic = "force-dynamic";
export const revalidate = 600;
export const metadata = {
title: "Editorial team — BroadcastBeat",
description: "Meet the BroadcastBeat editorial team — staff journalists covering broadcast, streaming, and post-production beats.",
};
interface Persona {
slug: string;
name: string;
bio: string | null;
beat: string | null;
avatar_url: string | null;
}
export default async function TeamPage() {
const sb = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
{
db: { schema: (process.env.NEXT_PUBLIC_SUPABASE_SCHEMA || "bb") as "public" },
auth: { persistSession: false },
}
);
const { data } = await sb
.from("ai_personas")
.select("slug, name, bio, beat, avatar_url")
.eq("active", true);
const team = (data || []) as Persona[];
return (
Editorial team
Staff journalists by beat. We are a mix of human reporters and trained
AI personas operating under house style.
{team.map((p) => (
-
{p.avatar_url && (
)}
{p.name}
{p.beat && (
{p.beat.replace(/-/g, " ")}
)}
{p.bio &&
{p.bio}
}
))}
);
}