// ─── SENES MEDIA · Contact page (Designova layout) ──────────────── function ContactPage({ navigate }) { const d = window.SENES_DATA; const [form, setForm] = React.useState({ name: "", email: "", company: "", budget: "", services: [], timeline: "", message: "", }); const [sent, setSent] = React.useState(false); const [sending, setSending] = React.useState(false); const toggleService = (s) => { setForm({ ...form, services: form.services.includes(s) ? form.services.filter(x => x !== s) : [...form.services, s] }); }; const handleSubmit = async (e) => { e.preventDefault(); setSending(true); try { const res = await fetch("https://formspree.io/f/mdajvoje", { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json" }, body: JSON.stringify({ name: form.name, email: form.email, company: form.company, services: form.services.join(", "), timeline: form.timeline, message: form.message, }), }); if (res.ok) setSent(true); } catch (err) {} setSending(false); }; return (
Get in touch

Let's
talk.

We would love to hear about your project and help bring your ideas to life.

{d.contact.email}

Email is fastest. We read every brief personally and reply within 30 minutes.

{d.contact.phone}

By appointment. Use the form to schedule a call — saves us both a phone-tag week.

SENES Media

A multidisciplinary studio — available worldwide. Bring your project, leave with a clear next step.

{/* Form */}
PROJECT BRIEF · 02

Tell us about it.

Share a few details and we'll respond within 30 minutes
All fields required except company
{sent ? (
BRIEF RECEIVED
Got it. Thank you.

We'll review your brief and reply within 30 minutes with a proposed call time, or a polite no.

) : (
setForm({ ...form, name: e.target.value })} data-cursor="text" placeholder="Full name" required /> setForm({ ...form, email: e.target.value })} data-cursor="text" placeholder="you@company.com" required /> setForm({ ...form, company: e.target.value })} data-cursor="text" placeholder="Optional" />
{["Web design", "Development", "Brand identity", "Art direction", "Media production", "Consultation"].map((s) => ( ))}
{["ASAP", "1–3 months", "3–6 months", "Flexible"].map((t) => ( ))}