Как мы за 5 месяцев сделали сервис комментариев и что из этого получилось

Как мы за 5 месяцев сделали сервис комментариев и что из этого получилось

Привет, меня зовут Александр, я один из основателей сервиса комментариев AnyComment. Я хочу поделиться своей историей о том, как разработка плагина комментариев для WordPress трансформировалась в SaaS продукт. С какими проблемами мы столкнулись, какие были решения и что в итоге из этого вышло.

WordPress плагин

В мае 2018 у меня зародилась идея сделать WordPress плагин комментариев для своего блога. В тот момент существовало уже около пяти крупных сервисов комментариев, и множество разных плагинов, каждый из которых имел свои функциональные особенности. Для себя я не нашел идеального варианта, и это стало началом разработки своего решения.

Через неделю уже был разработан сырой вариант, и я начал тестировать. Тесты прошли успешно, и я был готов начать им пользоваться. И однажды меня осенило: а почему бы не сделать его доступным для всех? Посидев еще недельку, я доработал настройки, сделал дизайн виджета более универсальным, придумал название — «AnyComment», попросил знакомого дизайнера нарисовать логотип, обложку и выложил плагин в репозиторий.

Как мы за 5 месяцев сделали сервис комментариев и что из этого получилось

В течение года в свободное от основной работы время я постоянно занимался доработкой функционала плагина. За этот период достаточно сильно расширились его возможности, а также выросло количество установок (5 тыс. на момент написания этого текста). Теперь это уже был плагин не просто с базовыми настройками, а с возможностью кастомизации дизайна, системой оценок, загрузки файлов, подписки на комментарии и авторизации через социальные сети.

А затем мне пришла в голову идея сделать сервис комментариев без ограничений в окружении WordPress. Сделать что-то универсальное для всех платформ. Это стало началом разработки сервиса.

Сервис комментариев

Это было непросто. Создание сервиса подразумевает под собой очень много ответственности, бюрократии и наличие свободного времени. Так как я работал фулл-тайм, то разрабатывать сервис мог только после работы.

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

Выбор технологий

Прежде чем начинать, нужно было выбрать стек технологий. Какую выбрать базу данных? Язык? Фреймворк? Где будем хоститься? Проанализировав разные варианты, решили использовать PostgreSQL, PHP на серверной стороне и React для виджета. Расположиться решили в OVH, выбрали Францию как основную локацию.

Разработка сервиса оказалась сложнее, чем предполагалось. К сожалению, не удалось повторно использовать код из плагина для WordPress и поэтому пришлось писать с нуля. Это было и плюсом, и минусом.

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

Тем не менее, через 3 месяца у нас был первый MVP, и мы были готовы стартовать. Но…

Онлайн-касса

Куда же без онлайн-кассы? Еще на этапе бизнес-плана, мы предусмотрели три тарифа: «Бесплатный», «Базовый» и «Про». Последние два были, конечно же, платными, и нам нужно было как-то принимать платежи. И тут я «нырнул» в мир онлайн-касс.

Еще около двух недель у меня ушло на всю бюрократию. В итоге подписали тысячу договоров, арендовали кассу в Атол, купили фискальный накопитель, подключили ее к платежному агрегатору — выбрали Unitpay (из-за низкой комиссии и простой документации к подключению) и подключили агрегатор к сервису.

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

А как же плагин?

Так как у нас уже был плагин, мы решили сделать процесс подключения сервиса максимально простым и удобным — чтобы можно было «одним кликом» менять форму от плагина на сервис.

Одна из основных задумок была — сделать автоматическую синхронизацию комментариев между сайтом и сервисом, а также в обратном порядке. К примеру, у вас есть сайт с 1000 комментариев. При подключении сервиса все комментарии синхронизируются с сервисом и сразу же отображаются в виджете.

Мы сделали еще кое-что интересное. Большинство сервисов комментариев работают по следующей схеме:

  • вы добавляете сайт на сервисе
  • выдается API ключ
  • вы копируете его, устанавливается плагин вашем сайте, вставляете туда ключ
  • плагин начинает делать свою магию (синхронизация комментариев и прочее)

Сложно, не правда ли?

Мы решили не усложнять этот процесс и сделать синхронизацию с сайтом одной кнопкой — после добавления сайта клиенту нужно лишь нажать кнопку «Запустить», и все ключи перенесутся автоматически:

Синхронизация API ключей с сайтом
Синхронизация API ключей с сайтом

Сразу после успешной синхронизации API ключей WordPress плагин начинает синхронизировать комментарии с сервисом. Выглядит это следующим образом:

Синхронизация комментариев с сайта на сервис
Синхронизация комментариев с сайта на сервис

Момент запуска

Как мы за 5 месяцев сделали сервис комментариев и что из этого получилось

В августе 2019 мы запустились! На разработку ушло около четырех месяцев.

Процесс разработки был достаточно гладким, а вот запуск — не очень. Просыпаюсь я однажды, завариваю себе кофе и тут вдруг замечаю, что за ночь количество комментариев увеличилось почти в 3 раза.

После часика-двух копаний, мне удалось разобраться, что комментарии циклично синхронизировались с сайта на сервис, а также в обратном порядке. Это происходило в течение 2 дней. Весь этот процесс нужно умножить на количество сайтов.

До ошибки у нас было 300 тыс. комментариев, и за 2 дня накопилось 700+ тыс. — более 400 тыс. дублей.

Как мы за 5 месяцев сделали сервис комментариев и что из этого получилось

Посидев еще часика два удалось понять, что все дубли были отмечены определенным образом в базе сервиса, поэтому я быстро их удалил, выпустил хотфикс для WordPress плагина и мы были готовы принять первых клиентов.

Первые клиенты, маркетинг

Маркетинга почти не было.

Единственное, что мы сделали — это отправили анонс всем пользователям плагина о запуске сервиса. Отдача была скудная, так как сервис сильно отставал по функционалу от плагина и некоторых аналогов.

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

Конечно же, мы не остались без клиентов. Начали появляться первые платные клиенты, дававшие положительный фидбек, со временем мы обросли нужным функционалом и стали органически расти. Нас стали советовать, появился эффект сарафанного радио.

Что из этого получилось?

Сейчас то самое время, когда я могу смело сказать, что сервис полноценно доработан. Это, конечно же, еще не финал и у нас еще много задумок.

А что по клиентам? На текущий момент, AnyComment установлен у таких проектов как Яндекс Практикум, UniSender, PROFI.RU и другие. Мы гордимся тем, что нам доверяют как крупные ресурсы, так и небольшие сайты.

С момента старта проекта мы реализовали много интересных возможностей, вот некоторые из них:

  • Визуальный редактор дизайна — гибкий Drag&drop редактор дизайна комментариев, возможность менять цветовую гамму, полностью кастомизировать виджет под сайт.
  • Умные действия — очень похожи на фильтры, которые можно поставить в Gmail или на правила в настройках других почтовых клиентах. Например, можно настроить правило на отправку уведомлений в Телеграм/почту или автоматическую модерацию комментария при совпадении установленного правила.
  • Возможность отвечать на комментарий прямо из почты — если вам пришло уведомление на почту, можно ответить на это письмо и наша система создаст комментарий-ответ от вашего лица.

Из других возможностей вы найдете: аналитику, SSO (Single Sing-On), смайлики, загрузка изображений, рейтинг (лайки/дизлайки), живые события, система жалоб, панель модерации прямо внутри комментариев или на сервисе, и конечно же, автоматический инструмент по переезду с аналогов.

Мысли вслух

Я бы хотел рассказать о некоторых важных уроках, полученных мною во время реализации проекта.

Слушайте своих клиентов

Не стоит 100% самому придумывать новый функционал, дайте волю своим клиентам. Очень важно остановиться и прислушаться к ним. Зачастую они сами скажут вам о том, чего они хотят. Какие есть проблемы, за что они готовы платить, а за что нет. Для этого мы даже создали небольшой раздел, где каждый из клиентов может предложить свою идею или поддержать существующую.

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

База знаний

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

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

Мы до сих пор активно занимаемся составлением базы знаний. Каждый раз находим что-то новое для объяснения или улучшения старого.

Не ждите, когда все будет готово

Проект стоит запускать, как только у вас есть MVP. Не стоит ждать момента, когда появится все, что вы запланировали. Клиенты относятся с пониманием к возможным факапам, когда начинают пользоваться новым сервисом. Главное, чтобы сервис имел пользу и оперативную поддержку.

Что было дальше?

На этой статье история не останавливается, я бы хотел написать серию статей о том:

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

Если вы хотите, чтобы я раскрыл какие-то другие детали — пишите в комментариях уточняющие вопросы, и я их также раскрою в следующей публикации.

И, конечно же, если у вас есть пожелания или замечания — пишите комментарии, я постараюсь ответить всем.

38
26 комментариев