"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; import { Send, Zap, ExternalLink } from "lucide-react"; import { api } from "@/lib/api"; const CHANNELS = [ { key: "telegram_link" as const, title: "Telegram", description: "Join our Telegram group for quick questions and community chat.", Icon: Send, }, { key: "nostr_link" as const, title: "Nostr", description: "Follow us on Nostr for censorship-resistant communication.", Icon: Zap, }, { key: "x_link" as const, title: "X (Twitter)", description: "Follow us on X for announcements and updates.", Icon: ExternalLink, }, ]; export function ContactChannelGrid() { const [settings, setSettings] = useState>({}); useEffect(() => { api .getPublicSettings() .then((data) => setSettings(data)) .catch(() => {}); }, []); return (
{CHANNELS.map(({ key, title, description, Icon }) => { const href = settings[key] || "#"; const isExternal = href.startsWith("http"); return (

{title}

{description}

); })}

Meetups

The best way to connect is in person. Come to our monthly meetup in Brussels.

See next meetup →
); }