Кейс · 2024

UxPRO — сайт дизайн-студии

Сайт дизайн-студии с нуля по Figma-макетам. Многостраничник на Nuxt 3 с FSD-структурой, контент-системой через @nuxt/content и серверной формой обратной связи.

Клиент
UxPRO
Год
2024
Роль
Fullstack frontend · Архитектура · CMS
Срок
Конец 2024 — настоящее время · поддержка и развитие
Команда
Solo · фронт
UxPRO — главный экран сайта
UxPRO — главный экран сайта

Контекст

Студии нужен был свой сайт — витрина услуг и кейсов. На входе детализированные макеты в Figma: серьёзная типографика, скролл-сценарии, карусели, тяжёлые переходы. Задача — выдержать планку макетов в продакшен-сборке и сделать админ-удобный контент-слой, чтобы студия могла добавлять новые проекты сама без участия разработчика.

Решение

Собрал на Nuxt 3 с FSD-подобной архитектурой: pages → widgets → features → entities → shared. Все ключевые страницы (главная, услуги, проекты, страница проекта, контакты, политика) пререндерятся в статику для быстрой первой загрузки и нормального SEO.

Контент-слой — через @nuxt/content: проекты и услуги хранятся в YAML/Markdown в репозитории. Студия добавляет новый кейс файлом — и он сразу подхватывается на главной и в каталоге, без релиза кода. Динамический роутинг по slug, превью на главной через embla-carousel с автопрокруткой.

Серверная часть на Nitro: форма обратной связи через nodemailer на SMTP студии, отдельный API для скачивания презентации с трекингом. Валидация форм на yup.

Tailwind v4 + кастомные SVG-иконки через vite-svg-loader — пиксель-в-пиксель совпадение с макетами. Pinia — для разделяемого состояния модалок и оверлеев. Подключил @nuxt/image для оптимизации изображений и @nuxtjs/sitemap для автогенерации.

SEO-обвязка: верификации Google Search Console / Yandex Webmaster, OG/Twitter мета, Yandex Метрика. Каждая страница — со своим title/description/canonical.

Стек
Nuxt 3Vue 3TypeScriptPiniaTailwind CSS v4@nuxt/content@nuxt/imageEmbla CarouselNodemailer

Результат

Сайт в продакшене на uxpro.ru. Студия самостоятельно ведёт каталог кейсов через файлы контента — без правок кода. Форма обратной связи работает на собственном SMTP, заявки логируются в Postgres. Все страницы пререндерены, полностью индексируются.