A wedding invitation site for my cousin Beth and her husband Scott. Its one job was to collect replies reliably from guests of every age, on whatever phone they already owned, so it opens as a sealed envelope you tap to break and then puts the day in front of you: a countdown, the order of the day, an FAQ that answers what guests actually ask, and a gift page that keeps the bank details behind a button.
- Status
- Live
- Role
- Design and build
What it proves
An RSVP that takes every guest in a party separately, with their own dietary needs, on whatever phone is in the family, and a gift page that keeps the bank details behind a button and says in writing that they will never change.
OutcomeThe replies came back through the site.
Beth & Scott, as it is today
Full-page captures of the live site, 8 September 2026. Opens in a new tab.
What Beth & Scott does
The site opens on a sealed envelope with a wax seal and falling petals: tap to open your invitation, or Skip.
A live countdown in months, days, hours, minutes and seconds, under a hero video with its own mute toggle.
The RSVP takes each guest in a party separately: their own name, adult or child, and their own dietary requirements.
Attending is a choice of Joyfully Accepts or Regretfully Declines, with a message to the couple underneath.
A QR code generated in the browser, so the RSVP link can be scanned off a printed card rather than typed.
The gifts page keeps the bank details behind a Show bank details button.
It also says, in writing, that those details will never change and that no email or message claiming otherwise is from the couple.
The FAQ answers arrival time, when the evening ends, where the venue is, parking, dress code, plus-ones and dietary requirements.
The schedule page carries the order of the day, the venue address, and places to stay nearby.
A custom 404: a page that has wandered off, much like a guest looking for the dance floor.
The couple read their replies in an admin area behind a username and password.
Inside the Beth & Scott build
Where it started
Wedding replies arrive by text, by WhatsApp, on a card in the post and in a conversation at a family party, and the couple are left reconciling a headcount and a list of allergies out of all of it while they are also planning a wedding. The guest list spans every age and every phone, which rules out anything asking for an account, an app or a second attempt. So the site had to be the one place a reply lands, and it had to work first time for someone who will use it once and never again.
The envelope, and the way in
An invitation is a physical object before it is a web page, so the site opens as one: a sealed envelope with a wax seal, petals falling behind it, and a prompt to tap and open your invitation, with the card floating into place behind it. Anyone who would rather skip the ceremony gets a Skip button. The same thinking runs out to the paper. The RSVP link is drawn as a QR code in the browser so it can be scanned off a printed card instead of typed, which makes the card and the site one invitation rather than two things a guest has to reconcile.
Every guest, not a headcount
Most RSVP forms ask how many are coming and stop there, which is how a caterer ends up with a number and no idea that two of them cannot eat gluten and one of them is four years old. This one asks for the party instead. Whoever replies gives their name, email and phone and chooses joyfully accepts or regretfully declines, then a block repeats for each additional guest with their own name, whether they are an adult or a child, and their own dietary requirements. A free-text message to the couple closes it, which is the part people actually enjoy filling in.
Guarding the form, and the bank details
A public form that anything can post to gets found within days, so it carries a CSRF token, a timestamp, and a honeypot field that real guests never see and only a bot fills in. The gift page needed more than that. A honeymoon fund means publishing bank details, and the exact fraud that targets weddings is a message to the guest list saying the account has changed. So the details sit behind a Show bank details button rather than in the page, and the page states in writing that they will never change, that no email or message claiming otherwise is from the couple, and that anyone unsure should check with Beth or Scott in person first.
What shipped
The invitation, a schedule carrying the order of the day and places to stay nearby, an FAQ that answers arrival, parking, dress code, plus-ones and dietary requirements before anyone has to ask, the gift page, and a 404 with a joke in it for whoever mistypes. On the front: a hero video with its own mute toggle, a countdown running down to the day, and a note about the honeymoon fund that takes Maybe later for an answer. Guests could upload photos. Behind a username and password, the couple read every reply as it arrived. Custom PHP served by nginx, Tailwind for the layout, GSAP for the movement.



The stack behind it
The tools behind Beth & Scott. Everything I build with is on the work page.
- PHPLanguage
- TailwindStyling
- GSAPAnimation




