Wedding invitation studio
A builder for personal invitations: a couple's wishes become project data, the builder joins them to a theme from the library and publishes the finished page.
Challenge
A wedding invitation is a page that has to work on the wedding day. Rebuilding one from scratch per couple is too risky: editing a paragraph breaks the blocks around it, and hand-checking everything before every order does not scale.
Solution
An invitation is assembled from a proven theme and a data file. The data schema is the single source of truth for both the admin panel and the builder, so composition comes from the data, not the theme: 16 blocks are available and their order is arranged per couple — no how-we-met story, no block; a wedding a month away swaps the countdown for the day's programme. A theme only enters the library after checks: it is run against another couple's data, with a full set of sections and a trimmed one, and the built page is smoke-tested in a real DOM through jsdom. Meta tags are injected at build time, because Telegram and WhatsApp build link previews without executing JS.
Outcome
A library of themes that differ in format rather than palette: a boarding pass with a tear-off stub, a pinned map instead of sections, a one-off newspaper issue, a filmstrip, a vinyl record, a constellation, a forest. Guests reply through personal links, the list exports to a spreadsheet, and the date travels to calendars as ICS.
Stack
Gallery











