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

Сайты

One Mind Agency

Двуязычный сайт креативного агентства: статический фронтенд на Next.js, headless WordPress для кейсов и воронка лидов в EspoCRM.

ТипСайты

Задача

One Mind Agency — креативное агентство, которому нужен был двуязычный сайт на английском и итальянском, чтобы показывать свои работы и привлекать новых клиентов. Команда хотела публиковать кейсы из привычной админки, а каждый запрос должен был попадать в воронку продаж, а не в почтовый ящик. Хостинг был виртуальным: Node мог запускать сборки, но не постоянный сервер.

Что я сделал

Я построил три части, которые работают бок о бок на одном домене.

  • Статический фронтенд на Next.js — главная, работы, страница кейса, «о нас» и контакты, экспортированные как обычные файлы в /en/ и /it/. Они быстро отдаются, и ничего не нужно держать запущенным.
  • Headless WordPress в /cms — собственный плагин регистрирует тип записи Case Study и его поля (клиент, год, категория, акцентный цвет, краткое описание, авторы) и отдаёт их вместе с переводами через REST API. Публичные страницы WordPress перенаправляют на настоящий сайт.
  • Автоматические пересборки — когда редактор сохраняет контент, WordPress выставляет флаг. Серверная задача подхватывает его примерно в течение 5 минут, пересобирает сайт и подменяет файлы, а блокировка не даёт двум сборкам пересечься.
  • Форма обратной связи в CRM — небольшой мост на PHP превращает каждый запрос в Lead в EspoCRM с диапазоном бюджета и языком. Ключ CRM остаётся на сервере и никогда не попадает в браузер.
  • Защита от спама и злоупотреблений — скрытое поле-ловушка (honeypot), один запрос раз в 30 секунд с одного IP-адреса, список разрешённых источников и строгая проверка каждого поля.
  • Никаких битых изображений — если кейс ссылается на файл изображения, которого больше нет, API ничего не возвращает, и страница показывает вместо него цветную заглушку.

Технологии

Next.js 15 со статическим экспортом, React 19, Tailwind CSS, Framer Motion и Lenis. WordPress с ACF и Polylang. EspoCRM. PHP 8.2 и MariaDB 10.11 на Hetzner.

Почему именно так

Сервер разрешает Node только для сборок, без долгоживущих процессов. Поэтому сайт генерируется во время сборки и отдаётся как статические файлы, а WordPress и CRM работают на PHP, который на сервере уже был. У редакторов остаётся обычная админка, а посетители получают простой HTML.

Есть идея?
Давайте обсудим.

Сайт, приложение, видео, песня или что-то масштабнее — я готов помочь вам это реализовать.

Связаться со мной
  • Неаполь
  • Идеи
  • Проекты
  • Люди
  • Всегда вперед