import { createFileRoute } from "@tanstack/react-router"; import { useCallback, useState, type FormEvent } from "react"; import { submitCloudSignup, type CloudSignupInput } from "~/cloud-signup"; import { FAQItem } from "~/components/faq-item"; import { SiteShell } from "~/components/site-shell"; import { pageMeta } from "~/meta"; export const Route = createFileRoute("/cloud")({ head: () => pageMeta( "Paseo Cloud - Design Partners", "Run Paseo across machines, with a team, or inside a company. We're onboarding design partners for the hosted, multi-machine, multi-user version of Paseo.", "/cloud", ), component: Cloud, }); const INPUT_CLASS = "block w-full rounded-md bg-white/5 border border-white/10 px-3.5 py-2.5 text-sm text-white placeholder:text-white/30 focus:outline-none focus:border-white/30 transition-colors"; type Status = "idle" | "submitting" | "success" | "error"; function Cloud() { return (

Paseo Cloud

For using Paseo across machines, with a team, or inside a company. Looking for design partners.

); } function SignupForm() { const [status, setStatus] = useState("idle"); const [error, setError] = useState(null); const handleSubmit = useCallback(async (event: FormEvent) => { event.preventDefault(); setStatus("submitting"); setError(null); const form = new FormData(event.currentTarget); const data: CloudSignupInput = { email: String(form.get("email") ?? ""), name: form.get("name") ? String(form.get("name")) : undefined, company: form.get("company") ? String(form.get("company")) : undefined, role: form.get("role") ? String(form.get("role")) : undefined, message: String(form.get("message") ?? ""), honeypot: form.get("website") ? String(form.get("website")) : "", }; try { await submitCloudSignup({ data }); setStatus("success"); } catch (err) { setStatus("error"); setError(err instanceof Error ? err.message : "Something went wrong."); } }, []); if (status === "success") { return (

Got it. I'll be in touch. If you don't hear back within a week, ping me on{" "} Discord .

); } const submitting = status === "submitting"; return (