WedLink app icon

Event technology

iOS & Android · React Native

Invitations your guests
do not have to fight.

Couples build the whole wedding on their phone in four questions. Every guest gets their own link with their name already on it, and replies without creating an account, in one of eight languages. Nobody opens a laptop and nobody makes a password.

StatusBuilt and tested. Not yet released
PlatformsiOS and Android from one codebase
Guest pathEight languages, no account required
Test suiteUnit tests plus integration assertions against real Postgres
The WedLink welcome screen, with one path for the couple and one for guests, and a language picker
A generated monogram above the couple's names, the wedding date and the venue

The monogram builds as you type. The invitation is visible from the first question, so the couple can see what they are making before they commit to it.

A live countdown showing days, hours and minutes above the wedding date and venue

One countdown, shared by everyone. The couple and every guest are looking at the same clock.

The problem

The RSVP is where
wedding software loses people.

A guest gets a link, taps it, and is asked to create an account to say yes to a party. Aunties give up. Group chats fill with people asking the couple to just put them down. The couple ends up maintaining a spreadsheet anyway, which is exactly what the product was supposed to prevent.

Guest lists are also not monolingual. In a lot of families, half the list would rather read the invitation in a different language than the one the couple planned in.

The idea

Remove every step
that is not the reply.

Give every guest a personal link that opens their invitation with their name already on it, so there is no code to type and no account to make. Translate the entire guest path. Let the couple plan the whole thing on the phone in their hand, and sign in later, only when they want replies coming from other people's phones.

What we built

Two experiences, one event.

For the couple

Setup is four questions: who is getting married, when, where, and then the invitation exists. The monogram and the invitation preview build live while you type, so the thing you are making is visible the whole way through.

After that it becomes a dashboard: a shared countdown, headcount, attending and declined totals, guest management with private groups, and a next steps list that tells you the one thing worth doing now.

Every guest gets two notes. One they read, printed on their own invitation and nobody else's. One only the couple can see, for the things you need to remember about that person and would never write where they could read it.

The invite a guest screen showing a personal note and a private note
The wedding date picker
Guests

Reply and get on with your day

  • A personal link, no code and no account
  • The invitation opens with your name on it
  • Eight languages on the guest path
  • Add the event to your calendar
  • Plus ones handled without a second link
Organisers

Know where you stand

  • Live countdown and headcount
  • Attending, declined and outstanding
  • Private groups for sides, families and tables
  • Per guest public and private notes
  • A general link for the group chat
Boundaries

What it deliberately does not do

  • Monetary gifts are disabled by design
  • The app does not send messages for you
  • No guest ever sees which group they are in
  • Contact details are for the couple's memory only

The engineering

No account still means
proper authorisation.

The hard part of a no account guest path is that anonymous does not mean unprotected. A guest link has to authorise exactly one guest to read and edit exactly one invitation, and nothing else on the event.

Mobile appReact Native and Expo, one codebase for iOS and Android, with the guest path fully localised
Supabase client
PostgREST and Edge FunctionsRow level policies scope a guest link to a single invitation. Edge Functions in Deno handle the operations a client must not be trusted with
stores
PostgresWeddings, guests, invitations, replies, groups, notes and revisions
verified by
The test gateUnit tests plus integration assertions run against a real Postgres instance, not a mock, before anything ships
Honesty

Payments are switched off

Monetary gifting is disabled in the product. Handling other people's wedding money is a regulated problem, and shipping it half solved would have been worse than not shipping it at all.

Resilience

Weddings happen in bad signal

Venues are basements and barns. The app caches locally and queues outbound work so a reply written on a train is not a reply lost, and the organiser view still renders when the network does not.

Reach

Eight languages where it counts

The guest path is translated eight ways because the guest list is the part of a wedding least likely to share one language. The organiser path stays in one language, which is a deliberate scope decision rather than an oversight.

The stack

What it is made of.

App
  • React Native
  • Expo
  • Localisation, eight locales
  • Local caching and outbox
Backend
  • Supabase Postgres
  • PostgREST
  • Edge Functions in Deno
  • Row level policies
Product
  • QR and link invitations
  • Guest groups and seating
  • Announcements and revisions
  • Calendar integration
Quality
  • Jest
  • Integration suite on real Postgres
  • RSVP and QR verification scripts
  • Lint and format gate

Next project

YardLink Eats

View case study

Events, venues and guest experiences.

RSVP flows, event sites, guest portals and inquiry systems. We have built this before.