Привет!

Сегодня мы решили рассказать про наших друзей из Беларуси — KUKU.io — сервисе для SMM, поддерживающем как Facebook, Twitter, Linkedin, Pinterest, Tumblr, Instagram, так и Вконтакте, Одноклассники и Telegram. С помощью KUKU.io маркетологи, SMM-специалисты, предприниматели, блоггеры и пользователи (которых уже более 25000), активно взаимодействующие с социальными сетями, могут создавать контент, планировать и публиковать его (уже создано более 4 миллионов постов) в желаемых профилях, группах и страницах в несколько кликов, а также получать полный анализ социальных сетей.



Под катом — про технику и технологию.

Выше было про маркетинг в социальных сетях в несколько кликов. С расширением для Google Chrome это не просто красивая фраза, ведь если вы хотите поделиться, скажем, статьей, у вас это действительно займет ровно два клика:



После того, как пользователь создал аккаунт, он может не только публиковать контент, но и анализировать его эффективность в подробной аналитике соцсетей, показывающей не только метрики, но и зависимости между ними.

Про направление развития

В приложении мы сделали фокус не только на функциональных особенностях, но и на интуитивный UX/UI. Мы изначально хотели сделать все функциональные особенности приложения максимально интуитивными: начиная от подключения соцсетей и календаря публикаций и заканчивая группировкой часто используемых аккаунтов в каналы. Почему? Сейчас пользователи не просто получают готовое решение и начинают работать с ним — они выбирают и сравнивают. И чем быстрее пользователь разобрался, как сделать первый шаг, тем больше будет глубина просмотра.

Коротко работу сервиса можно описать так:

Пользователь создает аккаунт в kuku.io. Подключает несколько аккаунтов социальных сетей. Мы получаем от них токены, необходимые для взаимодействия с API социальных сетей. Токены сохраняются в базу.

После этого мы позволяем создавать посты в подключенных социальных сетях, планировать их на определенное время, добавлять изображения, ссылки и т.п. Раз в 10 секунд проверяем, какие из запланированных постов готовы к публикации. Они становятся в redis-очередь для каждой из социальнх сетей. Примерно то же самое происходит с очередями сбора аналитики.

На самом деле все несколько сложнее и разбито на сервисы и подсистемы, у каждой из которых свой набор задач.



Про миграцию

Мы частично мигрировали с Digital Ocean, чтобы сократить расходы на содержание серверов на ранней стадии проекта. На данный момент мы используем BizSpark для стартапов на 3 года (5 подписок, каждая на $150 в мес.). Пока мы используем бесплатную подписку по программе BizSpark на 3 года. Основная проблема возникнет, если мы через 3 года не сможем оплачивать то, что построили в Azure. Думаю, такой проблемы не будет. Во всяком случае пока финансовые показатели роста kuku.io держатся на ожидаемом уровне.

Серверы мы с DO перевезли достаточно быстро. Панель управления очень функциональная и удобная. Были проблемы с инициализацией подписок, которые быстро решились общением с саппортом.

После нескольких недель появились вопросы по объединению 5 подписок в одну “общую” подписку. Оказалось, что из коробки так делать нельзя. Поэтому мы по максимуму использовали ресурс каждой из подписок и объединили все сервера из разных подписок при помощи openVPN. За кружкой кофе с ребятами из Microsoft мы узнали, что это вовсе не грязный хак, как мы думали вначале, и имеет право на жизнь.

Еще одним интересным кофейным откровением было то, что в Ажуре можно и не использовать продукты Microsoft – хотите, используйте, не хотите — поднимаете готовую виртуальную машину с Ubuntu и наслаждаетесь всеми благами Open Source. Фактически мы сейчас используем Azure в качестве IaaS. У Microsoft есть очень крутые штуки для CI, node-приложений, очередей, NoSQL, но пока только присматриваемся.

Под капотом у нас node.js сервер с фреймворком ifNode. На клиенте используется marionette.js и множество других open source-библиотек.

Мы используем 3 базы данных:
  • MySQL — для хранения пользователей, аккаунтов, групп, профилей, постов и тп. Использование обосновано большим количеством связей между сущностями в приложении.
  • MongoDB — для хранения “сырых” данных, собираемых из социальных сетей. Использование обосновано слабой структурированностью этих данных, а так-же необходимостью их быстрой записи/чтения в больших количествах.
  • Redis — для хранения сессий, обеспечения очередей публикации и очередей сбора аналитики. Использование обосновано простотой использования и быстродействием работы Redis с очередями.


Основная база данных (MySQL) пока осталась на Digital Ocean. Это связано со скоростью записи/чтения в машинах Azure, которые мы можем поднять за $150 (1 подписка BizSpark).

На сервере приложение разбито на 4 основных сервиса.

1) API клиентской части
2) Публикация и сбор аналитики, рассылка имейлов
3) Сокращатель ссылок
4) Система работы с платежами

Из наших внутренних фич — у нас есть собственное нагрузочное тестирование. В нашем случае оно немного отличается от классического тестирования загрузки страниц. Основная задача kuku.io — делать посты в соц. сети и собирать множество аналитики из соц. сетей. На это уходят основные ресурсы серверов. Трюк заключается в том, что мы не можем делая нагрузочное тестирование массово постить, например в facebook или vk.com. Нас за это просто забанят.

Для таких целей у нас есть подсистема, которая эмулирует нагрузки при постинге и сборе аналитике из соц. сетей.

Про команду

Делают проект сейчас таким, какой он есть, 12 классных специалистов в своих областях. Дима Дудин — CTO и движущий центр. Даник Цыркунов, Лёша Саскевич, Серёжа Кучейко и Артём Николаев отвечают за бэкенд, а Юра Мельников — за фронтенд. Наш невероятный UX/UI-дизайнер Женя Арцименя создал ключевую особенность KUKU.io — интуитивный интерфейс. Павел Кастеневич как менеджер проекта следит за тем, чтобы релизы были своевременны, а Юля Кердоль отвечает на все вопросы пользователей. С помощью Карины Дубовик, SMM менеджера высокого уровня, мы валидируем наши идеи и развиваем социальные сети. Также в QA нам невероятно помогает Маша Кислова.

У нас достаточно большая команда, и это позволяет нам реализовавать идеи и рекомендации наших пользователей достаточно быстро. К примеру, сейчас мы работаем над контент-планом и Team-версией для команд. Разработку этих массивных фич мы начали в начале апреля и планируем выпустить live версии уже в конце мая.

Про будущее

На сегодняшний день в пики нагрузки мы без труда публикуем в социальные сети около 6 постов в секунду и анализируем активность около 4 аккунтов в секунду. У нас более 3.5 млн публикаций, 20 тысяч пользователей и около 600 активных пользователей каждый день.

И это только начало, аудитория и количество действий, совершаемых пользователями растет намного быстрее, чем мы предполагали.

Кстати, наши небольшие достижения доказывают, что мы движемся в верном направлении. KUKU.io дважды попадал на Product Hunt, победил в конкурсе стартапов Bel.biz Battle и IE Venture Day, а также занимал высокие места и участвовал в ряде крупных международных форумов. В сентябре мы едем представлять проект на Pirate Summit, и тоже надеемся, что проект высоко оценят.



Спасибо!
Поделиться с друзьями
-->

Комментарии (6)


  1. zenn
    16.06.2016 14:33

    Вполне неплохо, но почему сервис не поддерживает самый популярный способ рассылки в соц.медия — через RSS? Это же куда удобней, при правильной настройке, чем руками тыкать каждую страницу…


    1. dtsyrkunov
      16.06.2016 17:22

      Спасибо за ваш вопрос!
      Мы добавим рассылку через RSS в ближайшее время. Мы намеренно отключили эту возможность для защиты от спамеров.
      Сейчас работаем над умной системой для защиты от спамерства через RSS.


  1. usarskyy
    17.06.2016 12:23

    А что это за чек такой «120k on Azure»?


    1. dtsyrkunov
      17.06.2016 14:10

      Баланс на Azure пополнился на 120k. Для использования всех платных сервисов Azure.


      1. usarskyy
        17.06.2016 14:25
        +1

        Если Гугл прав, то это не просто дополнительные 120k на баланс, а по программе BizSpark Plus, т.е. только на год. Правильно? Если это так, то нельзя ли «растянуть удовольствие»? :)


        1. dtsyrkunov
          20.06.2016 13:23

          К сожалению «растянуть удовольствие» нельзя)