"use client"; import { FormEvent, useState } from "react"; import Image from "next/image"; export default function HomePage() { const [email, setEmail] = useState(""); const [useCase, setUseCase] = useState(""); const [status, setStatus] = useState< "idle" | "loading" | "success" | "error" >("idle"); const [message, setMessage] = useState(null); async function handleSubmit(e: FormEvent) { e.preventDefault(); if (!email) { setMessage("Drop an email in first, operator."); setStatus("error"); return; } try { setStatus("loading"); setMessage(null); const res = await fetch("/api/beta-signup", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email, useCase }), }); if (!res.ok) { throw new Error("Failed to save your signup."); } setStatus("success"); setMessage("You’re locked in. Watch your inbox."); setEmail(""); setUseCase(""); } catch (err) { console.error(err); setStatus("error"); setMessage("Something broke. Try again in a minute."); } } return (
{/* Abstract Brand Background */}
{/* Top Bar / Logo */}
{/* Logo slot – replace src with your actual logo file */}
Battl Builders Logo
Private Beta • Coming Soon
{/* Hero */}

Stop Guessing. Start Building.

From part comparisons to full-build matchups, Battl Builders helps you find the right components, catch compatibility issues, and score the best deals — all without juggling tabs or spreadsheets.

  • • Side-by-side part & build comparisons
  • • Smart compatibility checks
  • • Live pricing from vetted merchants
  • • Save & share builds with your crew
  • • Vote on the cleanest, meanest setups
{/* Beta Form */}

Join the Beta List

Drop your email and we'll send early access when the Builder goes hot. No spam, just builds.

setEmail(e.target.value)} placeholder="you@gearjunkie.com" className="mt-1 w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-50 outline-none ring-amber-500/30 placeholder:text-zinc-600 focus:border-amber-400/80 focus:ring-2" required />