// Direction A — Editorial // Vibe: agency / fashion publication. Warm off-white, deep ink, Didone display serif // (Playfair for display, Inter for body, JetBrains Mono for tags/numbers). // Generous whitespace, editorial grid, striped placeholders with mono captions. function DirectionEditorial({ accent = "oklch(52% 0.18 25)" }) { const C = window.CONTENT; const APPLY_EMAIL = "apply@galois.studio"; const SUPABASE_URL = "https://rhrzshizleptqxndzyzq.supabase.co"; const SUPABASE_KEY = "sb_publishable_8mw87WVyJ1jDnIz3TXZHpw_NrnvNzmW"; const [form, setForm] = React.useState( Object.fromEntries(C.form.fields.map(f => [f.k, ""])) ); const [honeypot, setHoneypot] = React.useState(""); const mountedAt = React.useRef(Date.now()); const [submitState, setSubmitState] = React.useState("idle"); const scrollTo = (id) => (e) => { e.preventDefault(); const el = document.getElementById(id); if (el) el.scrollIntoView({ behavior: "smooth", block: "start" }); }; const navTargets = { "Roster": "roster", "Method": "method", "Case study": "case-study", "FAQ": "faq" }; const footerTargets = { "Roster": "roster", "How it works": "method", "Case study": "case-study", "Apply": "apply" }; const onSubmit = async (e) => { e.preventDefault(); if (submitState === "sending" || submitState === "sent") return; if (honeypot.trim() !== "") { setSubmitState("sent"); return; } if (Date.now() - mountedAt.current < 1500) { setSubmitState("sent"); return; } const required = ["name", "contact"]; if (required.some(k => !form[k].trim())) { setSubmitState("missing"); return; } setSubmitState("sending"); try { const payload = { name: form.name.trim().slice(0, 120), handle: (form.handle || "").trim().slice(0, 120) || null, niche: (form.niche || "").trim().slice(0, 200) || null, revenue: (form.revenue || "").trim().slice(0, 120) || null, contact: form.contact.trim().slice(0, 200), referrer: (document.referrer || "").slice(0, 500) || null, user_agent: (navigator.userAgent || "").slice(0, 500) || null, }; const res = await fetch(`${SUPABASE_URL}/rest/v1/galois_applications`, { method: "POST", headers: { "Content-Type": "application/json", "apikey": SUPABASE_KEY, "Authorization": `Bearer ${SUPABASE_KEY}`, "Prefer": "return=minimal", }, body: JSON.stringify(payload), }); if (!res.ok) throw new Error(`HTTP ${res.status}`); setSubmitState("sent"); } catch (err) { console.error("Application submit failed:", err); setSubmitState("error"); } }; return (
{C.hero.sub}
The entire engine sits behind a single afternoon of your time. Everything downstream runs on our infrastructure, our team, our accounts. You see the dashboards. You get paid.
{p.d}
"{C.caseStudy.note}"
{s.d}
{t.q}
{f.a}
{C.form.disclaimer} If it's a fit, we book a call within 72 hours and send a contract the same week.