Wedloom
Animated wedding invitations, addressed to every guest
Wedloom turns a wedding invitation into something a guest actually opens. Each guest gets a personal link that plays an animated invitation with their name on it, in their own language — Sinhala, Tamil or English. The couple runs everything from one dashboard, and after the invitation comes the Memory Wall, where guests share photos of the day as it happens. It's almost done and launching soon.
Almost done — launching soon. Public link at release.A forwarded JPEG isn't an invitation
A Sri Lankan wedding can invite hundreds of people across three languages. The options today are printed cards — expensive, slow to change, hand-delivered across the country — or a single image forwarded on WhatsApp that says nothing to anyone in particular, and tells the couple nothing back.
Wedloom's bet is simple: every guest should get their own invitation, addressed to them by name, in the language they actually read. And the couple should see who opened it and who's coming without a hundred phone calls.
Every template opens with a ritual
There are eighteen templates, and none of them is a flat card. Each one opens with its own moment — a wax seal cracks, a brass oil lamp lights, stars draw the couple's initials — then scrolls into the story, the photos, the schedule and the RSVP.
They cover every major tradition in the country: Kandyan Heritage and Poruwa for Sinhala Buddhist weddings, Tamil Kalyanam, Nikah Noor, Mehndi Night, Cathedral Glass, alongside modern ones like Scroll Cinema, The Magazine and Stories.
- Written in Sinhala, Tamil and English, with each guest fixed to their own language
- Optional licensed music, started by the guest's tap (phones block autoplay)
- Every template also prints as an A4 card with a matching RSVP card
- Each template is its own lazy-loaded chunk, so a guest downloads only the one they're sent
The invitation starts before the tap
Nobody opens a wedding invitation at a desk — it lands on a phone, usually in WhatsApp. So invitation pages are server-rendered per guest: the link preview already greets them by name before they open it.
Sending is one action from the dashboard. The send engine works through the guest list in the background, delivers through the official WhatsApp Cloud API with SMS as the fallback, and reports each delivery back live. No unofficial WhatsApp libraries — those get numbers banned.
One dashboard for the whole wedding
The couple's dashboard holds everything the invitation depends on, so a change of date or venue updates every guest's link at once.
- Guest list with Excel/CSV import, groups and a language per guest
- Live RSVPs, headcounts and meal choices
- An invitation editor for photos, the love story, the day's events and which sections show
- Card Studio, for couples who'd rather design their own card
- A budget planner with Excel and PDF export
- Three plans, with what each unlocks enforced on the server — not just hidden in the UI
The Memory Wall
On the day, guests scan a QR code at their table and share a photo — no app, no login. It appears on the reception screen within seconds. Afterwards the couple can turn every photo into a print-ready mosaic and thank each guest with the photo they took.
It's built to survive the whole hall uploading at once. Photos are compressed in the browser and uploaded straight to storage, so the API only ever handles small JSON. Upload limits are counted on the server, the couple can moderate what shows, and Socket.IO pushes each new photo to the screen live.
Two repos, and guest data treated as private
The frontend is Next.js 16 with React 19, Tailwind, Motion and GSAP. The backend is a separate Express 5 API with Prisma on PostgreSQL, organised so storage, messaging and email providers can be swapped by config rather than rewritten.
A guest list is a list of people's names and phone numbers, so it's handled that way. Both are encrypted at rest with AES-256-GCM, with a keyed hash used to catch duplicate numbers without decrypting anything. Password-reset and email-verification links are stored only as hashes, every request is validated with Zod, and public endpoints are rate-limited.
Almost done
The invitations, dashboard, sending and Memory Wall are built. What's left is final polish before launch. It's releasing soon, and the public link will be added here when it does.
Got a manual workflow worth automating?
This kind of focused, end-to-end tool is exactly what I like building. Let's talk about yours.