Challenge
A wedding invitation in Egypt is sent over WhatsApp, and the guest list lives in whoever's head is closest to the couple. Printed cards cost money and go out of date the moment a venue changes; a plain image loses the map, the timing, and any way of knowing who is actually coming.
Selling a digital alternative runs into a harder problem than design. Most couples pay by InstaPay or mobile wallet, not by card, so a checkout that assumes a payment gateway rules out most of the market. And an Arabic audience will not accept an English product with Arabic pasted over it — the moment the layout reads left-to-right, the product looks foreign.
Solution
Our team built the invitation as one engine rather than a set of designs. Every template renders from the same content schema, so the variants are palettes of design tokens feeding a single experience — sealed envelope, animated card reveal, countdown, map link, RSVP. Adding a design is a data change, and every design previews live with the same sample content.
Both languages were treated as first-class from the start. The brand itself differs by language — Vows in English, زفّة in Arabic, chosen rather than transliterated — and the whole interface, including the invitations themselves and the admin dashboard, lays out right-to-left in Arabic.
Payment was designed around how people actually pay. An order carries a unique reference; the couple transfers by InstaPay or wallet and uploads the transfer screenshot; an administrator reviews the proof and approves, which unlocks the couple's editor. They personalise the content and publish to their own shareable link. Manual approval is a deliberate first step, and the order flow is shaped so a gateway can slot in behind it without touching the schema.
Supabase carries the data layer, with row-level security, storage buckets for uploaded proof and photos, and database functions for the operations guests trigger directly — submitting an RSVP, leaving a wish, counting a view.
Results
The platform runs the full loop: a couple browses, previews, pays, gets approved, edits, and publishes; guests open the invitation, find the venue, and RSVP. Around it sits a vendor directory covering venues, makeup artists, photoshoot locations, photographers, and dress rental, and an administrative back office for templates, orders, payment review, vendors, coupons, and revenue.
It is deployed and running in production, containerised as a single Next.js standalone image behind a shared reverse proxy.



