← AI Lab
04 / AI LAB / WEDDING-SITE

The Wedding Site

ShippedBuilt for one day

Sixteen pages, no framework, and one afternoon it had to survive.

Gustav and I got married on a special day in August 2026, in a castle, and I built the site that ran it. It told guests where to sit, took their photos, ran the games between courses, and put their wishes on a screen in the room. Days later it turned all of that into a thank-you.

A LOOK / WEDDING-SITE
THE GATE

Shut behind a countdown until six in the morning, then it opened itself. Guests joining from abroad got in two days early, to a pared-down version of the same site.

FIND YOUR SEAT

Search your name, get your table. Rebuilt from the final printed chart, with seat labels measured rather than guessed so two-word names stack instead of stretching. There is a drag-and-drop editor behind it.

WISHES AND PHOTOS

Guests posted from any phone with no app and no account. 130 photos in the album. The physical guestbook was transcribed in afterwards, so the handwriting and the typing sit together.

THE GAMES

Bingo built from facts guests submitted about each other. 65 of them, 22 cards finished. Photo challenges taken on 30 times.

SAY IT OUT LOUD

A phrasebook in Mandarin, Swedish and Singlish. 48 clips, recorded at home, so a Swedish uncle could greet my family in their own language.

THE VENUE WALL

A full-screen slideshow for a screen in the room. Wishes and photos appeared as people posted them.

THE RECAP

Days later, a story page built from what guests uploaded: the venue, the arrival, ten photos, the figures, six wishes, a thank-you.

PHASE TWO

A second pass on the recap is lined up for when the photographer's gallery arrives.

UNDER THE HOOD

No framework, no build step, no package.json. 16 pages, 27 hand-written JS modules, about 7,400 lines. Supabase with row-level security. A service worker precaches the seating chart and the schedule, because a castle with stone walls is not a place to trust signal.

WHAT'S NEXT

Other couples asked. The product version is parked for now. I may come back and make it something anyone can use.

ABOUT THE SCREENSHOTS

Our guests did not sign up to appear in my portfolio. Every name, wish and bingo fact below was swapped for an invented one before I took these, so nothing here is anyone’s real message. The photos are ours.