// Hero: the Reddit quote headline + prompt input. // Visitors can type into the prompt; cycling placeholders, suggestion chips, submit handler logs to console. // SMB-owner placeholders: each one frames "replace the stack" or "fit my biz", // not "build a side project". The chips below match the same voice. const HERO_PLACEHOLDERS = [ "A booking system for my barbershop โ€” the way we actually book", "One tool that replaces my POS, Square Appointments, and that spreadsheet", "A customer portal for my plumbing business โ€” quotes, jobs, invoices, one place", "An inventory tool that fits my vintage shop, not Shopify's idea of one", "A back-office system to replace QuickBooks plus six other things", "A jobs + crews scheduler for my landscaping company, finally in one place", ]; const HERO_CHIPS = [ "๐Ÿ“… Booking system", "๐Ÿงพ Invoices + quotes", "๐Ÿ‘ฅ Customer portal", "๐Ÿ“ฆ Inventory", "๐Ÿ—‚๏ธ Back-office", ]; function Hero({ onStart, variant = "quote" }) { const [text, setText] = React.useState(""); const [phIdx, setPhIdx] = React.useState(0); const [phChars, setPhChars] = React.useState(0); const [deleting, setDeleting] = React.useState(false); const taRef = React.useRef(null); // Type-on placeholder when textarea is empty. React.useEffect(() => { if (text.length > 0) return undefined; const full = HERO_PLACEHOLDERS[phIdx]; const speed = deleting ? 18 : 38; const t = setTimeout(() => { if (!deleting) { if (phChars < full.length) setPhChars(phChars + 1); else setTimeout(() => setDeleting(true), 1700); } else { if (phChars > 0) setPhChars(phChars - 1); else { setDeleting(false); setPhIdx((phIdx + 1) % HERO_PLACEHOLDERS.length); } } }, speed); return () => clearTimeout(t); }, [text, phIdx, phChars, deleting]); const placeholder = HERO_PLACEHOLDERS[phIdx].slice(0, phChars); const submit = () => { const value = text || HERO_PLACEHOLDERS[phIdx]; if (onStart) onStart(value); }; const useChip = (chip) => { const clean = chip.replace(/^[^\w]+/, "").trim(); setText(`Build me a ${clean.toLowerCase()} for my business.`); if (taRef.current) taRef.current.focus(); }; return (
{/* ambient glows behind hero */}
Live from minute one {variant === "owner" ? ( <> To every small business owner

Stop renting software
that doesn't fit.

Look at your subscriptions. Ask if they're doing the job.
Vibn builds the one tool that fits how your business actually runs โ€” built for you, owned by you.

) : variant === "promise" ? ( <>

Keep vibing.
All the way to launch.

idea โ†’ live โ†’ marketed โ†’ customers

"I built my product, now what?" Vibn is the answer.
Your AI handles the technical stuff, puts your idea online, and helps you find your first customers.

) : ( <>

"I built my product,
now what?"

posted 2 hours ago ยท r/smallbusiness

Keep vibing. All the way to launch.
Your AI handles the technical stuff, puts your idea online, and helps you find your first customers.

)} {/* Prompt */}