Перейти к содержимому
Alba

Студия свадебных приглашений

Конструктор персональных приглашений: пожелания пары превращаются в данные, сборщик соединяет их с темой из библиотеки и публикует готовую страницу.

Задача

Свадебное приглашение — страница, которая обязана работать в день свадьбы. Верстать её заново под каждую пару слишком рискованно: правка одного абзаца ломает соседние блоки, а проверять всё вручную перед каждым заказом невозможно.

Решение

Приглашение собирается из отлаженной темы и файла данных. Схема данных — единственный источник правды и для админки, и для сборщика: состав задаётся данными, а не темой. Доступно 16 блоков, порядок собирается под конкретную пару — нет истории знакомства, нет блока; свадьба через месяц — вместо обратного отсчёта программа дня. Тема попадает в библиотеку только через проверки: её прогоняют на данных другой пары, с полным набором секций и с урезанным, а собранную страницу смотрит smoke-тест в настоящем DOM через jsdom. Мета-теги подставляются на сборке, потому что Telegram и WhatsApp строят превью ссылки без выполнения JS.

Результат

Библиотека тем, которые отличаются форматом подачи, а не палитрой: посадочный талон с отрывным корешком, карта с булавками вместо разделов, газетный спецвыпуск, диафильм, винил, созвездие, лес. Гости отвечают по персональным ссылкам, список выгружается файлом для Excel, дата уходит в календарь через ICS.

Стек

Next.js 15React 19TypeScriptzodjsdomICS

Галерея

Тема «Рейс»: приглашение как посадочный талон с корешком
Тема «Рейс»: приглашение как посадочный талон с корешком
Расписание дня в логике табло вылетов
Расписание дня в логике табло вылетов
Тема «Карта»: разделы приглашения — булавки на карте
Тема «Карта»: разделы приглашения — булавки на карте
Тема «Звёзды»: имена пары как созвездие
Тема «Звёзды»: имена пары как созвездие
Тема «Винил»: приглашение как пластинка
Тема «Винил»: приглашение как пластинка
История пары — сторона B с треклистом
История пары — сторона B с треклистом
Тема «Диафильм»: история кадрами
Тема «Диафильм»: история кадрами
Тема «Газета»: приглашение как спецвыпуск с полосами
Тема «Газета»: приглашение как спецвыпуск с полосами
История пары — материалом номера
История пары — материалом номера
Тема «Лес»: спокойная вертикальная подача
Тема «Лес»: спокойная вертикальная подача
Ответ гостя — по персональной ссылке
Ответ гостя — по персональной ссылке