Какой должна быть платформа для influence-маркетологов
О клиенте
Influize — это агентство, занимающееся инфлюенс-маркетингом в Instagram. Смысл их деятельности — в организации рекламных кампаний с инстаблогерами и лидерами мнений.
Сайт предлагает услуги для разных категорий клиентов и объясняет преимущества работы с агентством. Убедившись в эффективности предложения, пользователь сайта оставляет заявку — на каждой странице достаточно кнопок и форм, подталкивающих это сделать —, которая попадает в систему обработки лидов, построенную на базе Drupal. Оповещение о новых лидах менеджеры Influize получают по почте, а лиды получают автоматическое письмо с подтверждением об удачно заполненной форме. Рассылка писем происходит через Sendgrid.
Бизнес-цели
Клиент ждал от сайта достижения нескольких целей:
- Работа при высоких нагрузках на сервер
- Возможность для менеджеров создавать страницы сайта самостоятельно
- Оптимизация для поисковых систем

Решения
Бэкенд
Для достижения первой цели мы разработали систему кэширования с использованием следующих технологий:
- хостинг сайта — Amazon Web Services;
- основные технологии — Drupal 8, Node.js;
- интеграция с сервисами кеширования — Memcached, Varnish;
- готовая сборка с предустановленными модулями — Drupal Contenta CMS;
Так мы снизили количество запросов к базе данных и, как результат, снизили время загрузки.
Drupal Contenta CMS используется для реализации REST API — прикладного интерфейса для взаимодействия Drupal и Node.js-приложений между собой. Drupal используется на этом проекте только как хранилище данных, а на Node.js мы построили серверное приложение. Такая архитектура называется headless Drupal.
Чтобы достичь второй цели и позволить менеджерам создавать и публиковать контент без помощи разработчика, мы реализовали такую архитектуру, которая даёт собирать отдельные страницы из независимых блоков — параграфов, и легко создавать новые страницы с разной структурой, используя админский UI. К новым блокам автоматически применяются нужные стили, и они работают так, как от них ожидается.


Фронтенд
Разработка фронтенда на этом проекте тесно связана с соблюдением сайтом требований SEO, что соответствует третьей задаче, поставленной клиентом перед нами. Она была решена за счёт применения принципов разработки изоморфного приложения.
Чтобы переключение между страницами не бросалось пользователю в глаза, мы разработали сайт по принципу SPA, или Single Page Application. Суть принципа в том, что весь сайт загружается и обновляется на одной HTML-странице. Мы использовали фреймворк Next.js на базе библиотеки React.js, на которой разработан интерфейс сайта. Next.js позволяет сайту быть частично отрисованным на сервере (метод server-side rendering, или SSR) . Без такого подхода сайт индексировался бы хуже — считается, что поисковые роботы понижают в выдаче те сайты, которые собираются исключительно в браузере.
Пользователи изоморфных приложений получают интерфейс с моментальной реакцией на действия пользователя и быстрой загрузкой контента.
Результаты
Работа над проектом продолжается.
Сайт клиента: influize.com