import type { Metadata } from "next"; import Link from "next/link"; import { ArrowRight, ExternalLink, Mail, Server, ShieldCheck, UserRound } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Container, Eyebrow } from "@/components/marketing/section"; import { Reveal } from "@/components/marketing/reveal"; export const metadata: Metadata = { title: "Contact", description: "How to reach the person behind PolyLLM, where it is hosted, and how to report a security issue.", alternates: { canonical: "/contact" }, }; const CARDS = [ { icon: , title: "E-mail", body: "For questions, bug reports, feature requests or anything about your account.", action: ( contact@spboucher.ai ), }, { icon: , title: "Who built it", body: "PolyLLM is designed, built and operated by Simon-Pierre Boucher. One person, so replies are personal but not instant — expect a day or two.", action: Simon-Pierre Boucher, }, { icon: , title: "Where it runs", body: "PolyLLM is hosted on MacLustr, a private cluster of Apple silicon Macs in Québec, fronted by a dedicated gateway. Your data stays in PolyLLM's own PostgreSQL database.", action: ( www.maclustr.io ), }, { icon: , title: "Security reports", body: "Found a vulnerability? Write to the same address with “security” in the subject. Please allow a reasonable window before disclosing publicly.", action: ( Read the security page ), }, ]; export default function ContactPage() { return ( Contact

Talk to a person.

No ticketing system, no chatbot. One e-mail address, read by the person who wrote the code.

    {CARDS.map((c, i) => ( {c.icon}

    {c.title}

    {c.body}

    {c.action}

    ))}

Provider issues (billing, quotas, a model that misbehaves) are handled by the provider — OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Moonshot AI, OpenRouter or Cerebras — under your own account with them. PolyLLM never resells model access. See the{" "} privacy policy {" "} and{" "} terms .

); }