"use client" import { useState } from "react" import { Button } from "@/components/ui/button" const LISTMONK_URL = "https://newsletter.jeffemmett.com" const LIST_UUID = "0c541da4-3f04-4e72-978a-5a328b43c995" // Alltornet list export function NewsletterSignup() { const [email, setEmail] = useState("") const [status, setStatus] = useState<"idle" | "loading" | "success" | "error">("idle") const [message, setMessage] = useState("") const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!email) return setStatus("loading") try { const response = await fetch(`${LISTMONK_URL}/api/public/subscription`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ email: email, list_uuids: [LIST_UUID], name: "", }), }) if (response.ok) { setStatus("success") setMessage("Check your email to confirm your subscription!") setEmail("") } else { throw new Error("Subscription failed") } } catch { setStatus("error") setMessage("Something went wrong. Please try again.") } } return (

Stay in the Loop

Subscribe for updates from Alltornet.

{status === "success" ? (
{message}
) : (
setEmail(e.target.value)} required className="flex-1 px-4 py-2 rounded-lg border bg-background focus:outline-none focus:ring-2 focus:ring-primary/50" />
)} {status === "error" && (

{message}

)}

No spam, unsubscribe anytime. We respect your privacy.

) }