From b26bc5263bba02f21dfbb3f1cb0d00dd70082b4a Mon Sep 17 00:00:00 2001 From: Sean Date: Mon, 30 Mar 2026 06:48:37 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20redesign=20homepage=20=E2=80=94=20RSC,?= =?UTF-8?q?=208=20sections,=20remove=20beta=20form?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- app/page.tsx | 563 ++++++++++++++++++++------------------------------- 1 file changed, 221 insertions(+), 342 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index ae89f50..6b5538f 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,6 +1,4 @@ -"use client"; - -import { FormEvent, useState } from "react"; +import type { Metadata } from "next"; import Image from "next/image"; import Link from "next/link"; import { @@ -8,112 +6,21 @@ import { ShieldExclamationIcon, CurrencyDollarIcon, BookmarkSquareIcon, - BuildingStorefrontIcon, - ChatBubbleLeftRightIcon, + LinkIcon, + LockOpenIcon, } from "@heroicons/react/20/solid"; +export const metadata: Metadata = { + title: { absolute: "Battl Builders — Free AR-15 Build Planner" }, + description: + "Pick compatible AR-15 parts, catch mismatches before you order, and compare live prices from real retailers. Free, no account required.", +}; + 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); - const [accepted, setAccepted] = useState(false); - const TOS_VERSION = "2025-12-27"; - - async function handleSubmit(e: FormEvent) { - e.preventDefault(); - - if (!email) { - setMessage("Drop an email in first, operator."); - setStatus("error"); - return; - } - - if (!accepted) { - setMessage( - "You must accept the Terms and confirm you’re responsible for safe/legal assembly." - ); - 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, - acceptedTos: accepted, - tosVersion: TOS_VERSION, - }), - }); - - if (!res.ok) { - const txt = await res.text().catch(() => ""); - throw new Error(txt || "Failed to save your signup."); - } - - setStatus("success"); - setMessage( - "✅ You’re on the list. Invites drop soon — we’ll email your access link when it’s go-time." - ); - setEmail(""); - setUseCase(""); - } catch (err) { - console.error(err); - setStatus("error"); - setMessage("Something broke. Try again in a minute."); - } - } - - const features = [ - { - name: "Guided part roles", - description: "Pick parts by role so you’re not guessing what fits where.", - icon: WrenchScrewdriverIcon, - }, - { - name: "Basic compatibility warnings", - description: - "Early guardrails to catch obvious mismatches before you buy.", - icon: ShieldExclamationIcon, - }, - { - name: "Live pricing totals", - description: - "See the running total as you build, with real retailer listings.", - icon: CurrencyDollarIcon, - }, - { - name: "Save builds", - description: "Save a build to your account so you can finish it later.", - icon: BookmarkSquareIcon, - }, - { - name: "Limited retailers (for now)", - description: - "We’re starting small with a couple merchants and expanding fast.", - icon: BuildingStorefrontIcon, - }, - { - name: "Feedback-driven roadmap", - description: - "Tell us what’s confusing, wrong, or missing — we’ll fix that first.", - icon: ChatBubbleLeftRightIcon, - }, - ]; - return (
- {/* Abstract Brand Background */} -
+ {/* Grid background — retained from previous implementation */} +
- -
-
- {/* Top Bar / Logo */} -
-
- Battl Builders Logo -
- -
+ + Start a Build + +
+ - {/* Hero */} -
-
-
- - Private Beta - - AR-15 focus -
- -

- Stop Guessing. - Start Building. -

- -

- Battl Builders helps you plan an AR-15 build faster: choose parts - by role, get basic compatibility guidance, and compare real - listings—without juggling tabs or spreadsheets. -

- -
    -
  • • Guided part roles (no “where does this go?”)
  • -
  • • Basic compatibility warnings
  • -
  • • Live pricing from current retailers
  • -
  • • Save builds to your account
  • -
- -

- Early access beta. Data, pricing, and available parts are still - evolving. -

+ {/* ── 2. Hero ── */} +
+
+ + AR-15 Builder  ·  100% Free
- {/* Beta Form */} -
-

- Join the Beta List -

-

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

+

+ Stop Guessing. + Start Building. +

-
-
- - setEmail(e.target.value)} - placeholder="you@gearjunkie.com" - disabled={status === "loading" || status === "success"} - 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 disabled:cursor-not-allowed disabled:opacity-60" - required - /> -
+

+ Not sure which parts work together? We'll walk you through it. + Pick your components, get warned about anything that won't fit, + and see real prices from real retailers — all in one place. +

-
- -