// Pages part 2 — Real Weddings index, Wedding Story, Services, Destinations, About, Enquire. // ────────── REAL WEDDINGS INDEX ────────── function RealWeddings() { const [filter, setFilter] = useState("All"); const destinations = ["All", ...Array.from(new Set(REAL_WEDDINGS.map((w) => w.destination)))]; const filtered = filter === "All" ? REAL_WEDDINGS : REAL_WEDDINGS.filter((w) => w.destination === filter); return (
{/* filter */}
Filter by destination: {destinations.map((d) => ( ))}
{filtered.map((w, i) => (
))}
{filtered.length === 0 && (

No published weddings for this destination yet — the team has worked there, but we are still waiting on consent.

)}
); } // ────────── WEDDING STORY (case study) ────────── function WeddingStory({ slug }) { const w = REAL_WEDDINGS.find((x) => x.slug === slug); if (!w) { return (

Wedding not found

Back to all weddings

); } return (
{/* Hero */}
A Real Wedding · {w.destination}

{w.display}

Photography {w.photographer} · {w.year} · Published with consent of the family.

{/* Meta strip */}
{[ { label: "Destination", val: w.location }, { label: "Venue", val: w.venue }, { label: "Events", val: `${w.events} across ${w.days} days` }, { label: "Guests", val: w.guests }, { label: "Year", val: w.year }, ].map((m) => (
{m.label}
{m.val}
))}
{/* Narrative */}
The Story

A long, slow weekend on the island.

{w.excerpt}

The brief from the family was unusually quiet: "let the venue do the work." We worked with the natural arc of the island — sunrise haldi, late-afternoon sangeet on the lawn, an intimate mandap set against the open Gulf. Twelve weeks of planning, three transport routes, one shared meal a day for the family — and a wedding that arrived feeling, in the family's own words, "as if we had nothing to do but be guests."

The design palette was drawn from the bride's grandmother's wedding sari — blush, champagne and a deep oxblood that only appeared at dusk. The decor was kept light by day, layered for the evenings.

{/* Functions */}
Functions Covered
{w.functions.map((f) => ( {f} ))}
{/* Palette */}
Design Palette
{w.palette.map((c) => (
{c}
))}
{/* Gallery */}

Imagery above is decor work from the studio. Wedding photography is consent + photographer-credit gated and shown only where families have agreed.

Photography: {w.photographer}

{/* Adjacent weddings */}
{REAL_WEDDINGS.filter((x) => x.slug !== w.slug).slice(0, 3).map((other) => ( ))}
); } // ────────── SERVICES ────────── function Services() { return (
{SERVICES.map((s, i) => ( ))}
); } function ServiceRow({ service, flipped, index }) { return (
{String(index + 1).padStart(2, "0")} / 06

{service.title}

{service.body}

Enquire about {service.title.toLowerCase()} →
); } // ────────── DESTINATIONS ────────── function DestinationsPage() { return (
{DESTINATIONS.map((d, i) => (
{String(i + 1).padStart(2, "0")} · {d.count} weddings

{d.name}

Local partners, venue relationships and on-ground logistics established over a decade.

))}

Couples have also brought us to Hong Kong, South Africa and Qatar — and we travel wherever the story calls for. If your destination isn't above, ask.

Tell us where
); } // ────────── ABOUT ────────── function About() { return (
Founded in Dubai, 2014.} kicker="A wedding and event studio born out of one founder's instinct for the families behind the paperwork." image="media/decor-wedding-stage.webp" />
Saniya Wahi
The Founder

Saniya Wahi

Saniya started planning weddings at twenty-two, out of a small apartment in Dubai, under the name Selvatico. A decade later, the studio she founded carries her name and works across the UAE, India and the world.

Her stated background in psychology shapes the way the studio works. The first meeting is rarely about the wedding — it's about the family, the parents, the friends and the small histories that have led to this celebration. Everything that follows is in service of that.


Our ethos

Every wedding has a different emotion. The job of the studio is to find that emotion, name it, and design every room, ritual and meal around it.

Our practice

We work as a single in-house team — planners, designers, florists, production. Vendors are curated, not assembled at random.

Our network

Photographers, videographers, caterers, performers, designers — a decade of relationships in Dubai, Mumbai, Delhi, London and beyond.

Our scale

More than 250 events. Weddings from 60 to 600 guests. Corporate galas, award nights, product launches, intimate dinners.


From Selvatico to Events by Saniya

{[ ["2014", "Selvatico is founded in Dubai by Saniya Wahi, aged 22."], ["2018", "First major destination wedding outside the UAE — India."], ["2020", "Selvatico is rechristened Events by Saniya."], ["2022", "Two offices: Dubai (UAE) and Gurgaon (India)."], ["2024", "Two hundred and fiftieth event."], ].map(([y, t]) => (
{y}
{t}
))}
); } // ────────── ENQUIRE ────────── function Enquire() { const [form, setForm] = useState({ name: "", email: "", phone: "", eventType: "Wedding", eventDate: "", guests: "100–200", destination: "UAE", budget: "", message: "", }); const [submitted, setSubmitted] = useState(false); const update = (k, v) => setForm((f) => ({ ...f, [k]: v })); const onSubmit = (e) => { e.preventDefault(); setSubmitted(true); }; const waText = encodeURIComponent( `Hi Events by Saniya — I'd like to enquire about a ${form.eventType.toLowerCase()} in ${form.destination}, ${form.eventDate || "TBC"}, ~${form.guests} guests.` ); return (
{/* Form */}
{submitted ? (
Sent

Thank you, {form.name.split(" ")[0] || "we'll be in touch"}.

We've received your enquiry and will reply personally within two working days. If your celebration is sooner, please WhatsApp us directly.

Open WhatsApp
) : (
update("name", e.target.value)} className="input" placeholder="Full name" />
update("email", e.target.value)} className="input" placeholder="you@example.com" /> update("phone", e.target.value)} className="input" placeholder="+971 …" />
update("eventType", v)} />
update("eventDate", e.target.value)} className="input" placeholder="e.g. Nov 2025 or undecided" /> update("guests", v)} small />
update("budget", v)} small />