Как мы за 5 месяцев сделали сервис комментариев и что из этого получилось
Привет, меня зовут Александр, я один из основателей сервиса комментариев AnyComment. Я хочу поделиться своей историей о том, как разработка плагина комментариев для WordPress трансформировалась в SaaS продукт. С какими проблемами мы столкнулись, какие были решения и что в итоге из этого вышло.
WordPress плагин
В мае 2018 у меня зародилась идея сделать WordPress плагин комментариев для своего блога. В тот момент существовало уже около пяти крупных сервисов комментариев, и множество разных плагинов, каждый из которых имел свои функциональные особенности. Для себя я не нашел идеального варианта, и это стало началом разработки своего решения.
Через неделю уже был разработан сырой вариант, и я начал тестировать. Тесты прошли успешно, и я был готов начать им пользоваться. И однажды меня осенило: а почему бы не сделать его доступным для всех? Посидев еще недельку, я доработал настройки, сделал дизайн виджета более универсальным, придумал название — «AnyComment», попросил знакомого дизайнера нарисовать логотип, обложку и выложил плагин в репозиторий.
В течение года в свободное от основной работы время я постоянно занимался доработкой функционала плагина. За этот период достаточно сильно расширились его возможности, а также выросло количество установок (5 тыс. на момент написания этого текста). Теперь это уже был плагин не просто с базовыми настройками, а с возможностью кастомизации дизайна, системой оценок, загрузки файлов, подписки на комментарии и авторизации через социальные сети.
А затем мне пришла в голову идея сделать сервис комментариев без ограничений в окружении WordPress. Сделать что-то универсальное для всех платформ. Это стало началом разработки сервиса.
Сервис комментариев
Это было непросто. Создание сервиса подразумевает под собой очень много ответственности, бюрократии и наличие свободного времени. Так как я работал фулл-тайм, то разрабатывать сервис мог только после работы.
Абсолютно случайным образом мне удалось найти инвестора для проекта. Им стал один из пользователей плагина, у которого был достаточно большой портфель сайтов. Я составил бизнес-план, мы его обсудили, договорились о долях, зонах ответственности, и я приступил к реализации.
Выбор технологий
Разработка сервиса оказалась сложнее, чем предполагалось. К сожалению, не удалось повторно использовать код из плагина для WordPress и поэтому пришлось писать с нуля. Это было и плюсом, и минусом.
Плюсом в том плане, что какие-то части функционала получилось реализовать более грамотно. Минус в том, что пришлось писать одно и тоже. Это долгий и достаточно нудный процесс, если его делаешь второй раз.
Тем не менее, через 3 месяца у нас был первый MVP, и мы были готовы стартовать. Но…
Онлайн-касса
Куда же без онлайн-кассы? Еще на этапе бизнес-плана, мы предусмотрели три тарифа: «Бесплатный», «Базовый» и «Про». Последние два были, конечно же, платными, и нам нужно было как-то принимать платежи. И тут я «нырнул» в мир онлайн-касс.
Еще около двух недель у меня ушло на всю бюрократию. В итоге подписали тысячу договоров, арендовали кассу в Атол, купили фискальный накопитель, подключили ее к платежному агрегатору — выбрали Unitpay (из-за низкой комиссии и простой документации к подключению) и подключили агрегатор к сервису.
Вроде бы как все готово к запуску. Стартуем? Не совсем, сначала нужно сделать так, чтобы плагин мог работать с сервисом.
А как же плагин?
Так как у нас уже был плагин, мы решили сделать процесс подключения сервиса максимально простым и удобным — чтобы можно было «одним кликом» менять форму от плагина на сервис.
Одна из основных задумок была — сделать автоматическую синхронизацию комментариев между сайтом и сервисом, а также в обратном порядке. К примеру, у вас есть сайт с 1000 комментариев. При подключении сервиса все комментарии синхронизируются с сервисом и сразу же отображаются в виджете.
Мы сделали еще кое-что интересное. Большинство сервисов комментариев работают по следующей схеме:
- вы добавляете сайт на сервисе
- выдается API ключ
- вы копируете его, устанавливается плагин вашем сайте, вставляете туда ключ
- плагин начинает делать свою магию (синхронизация комментариев и прочее)
Сложно, не правда ли?
Мы решили не усложнять этот процесс и сделать синхронизацию с сайтом одной кнопкой — после добавления сайта клиенту нужно лишь нажать кнопку «Запустить», и все ключи перенесутся автоматически:
Сразу после успешной синхронизации API ключей WordPress плагин начинает синхронизировать комментарии с сервисом. Выглядит это следующим образом:
Момент запуска
В августе 2019 мы запустились! На разработку ушло около четырех месяцев.
Процесс разработки был достаточно гладким, а вот запуск — не очень. Просыпаюсь я однажды, завариваю себе кофе и тут вдруг замечаю, что за ночь количество комментариев увеличилось почти в 3 раза.
После часика-двух копаний, мне удалось разобраться, что комментарии циклично синхронизировались с сайта на сервис, а также в обратном порядке. Это происходило в течение 2 дней. Весь этот процесс нужно умножить на количество сайтов.
До ошибки у нас было 300 тыс. комментариев, и за 2 дня накопилось 700+ тыс. — более 400 тыс. дублей.
Посидев еще часика два удалось понять, что все дубли были отмечены определенным образом в базе сервиса, поэтому я быстро их удалил, выпустил хотфикс для WordPress плагина и мы были готовы принять первых клиентов.
Первые клиенты, маркетинг
Маркетинга почти не было.
Единственное, что мы сделали — это отправили анонс всем пользователям плагина о запуске сервиса. Отдача была скудная, так как сервис сильно отставал по функционалу от плагина и некоторых аналогов.
С момента запуска и по сегодняшний день мы активно занимались доработкой функционала, вводили много новых возможностей и в определенный момент переросли плагин.
Конечно же, мы не остались без клиентов. Начали появляться первые платные клиенты, дававшие положительный фидбек, со временем мы обросли нужным функционалом и стали органически расти. Нас стали советовать, появился эффект сарафанного радио.
Что из этого получилось?
Сейчас то самое время, когда я могу смело сказать, что сервис полноценно доработан. Это, конечно же, еще не финал и у нас еще много задумок.
А что по клиентам? На текущий момент, AnyComment установлен у таких проектов как Яндекс Практикум, UniSender, PROFI.RU и другие. Мы гордимся тем, что нам доверяют как крупные ресурсы, так и небольшие сайты.
С момента старта проекта мы реализовали много интересных возможностей, вот некоторые из них:
- Визуальный редактор дизайна — гибкий Drag&drop редактор дизайна комментариев, возможность менять цветовую гамму, полностью кастомизировать виджет под сайт.
- Умные действия — очень похожи на фильтры, которые можно поставить в Gmail или на правила в настройках других почтовых клиентах. Например, можно настроить правило на отправку уведомлений в Телеграм/почту или автоматическую модерацию комментария при совпадении установленного правила.
- Возможность отвечать на комментарий прямо из почты — если вам пришло уведомление на почту, можно ответить на это письмо и наша система создаст комментарий-ответ от вашего лица.
Из других возможностей вы найдете: аналитику, SSO (Single Sing-On), смайлики, загрузка изображений, рейтинг (лайки/дизлайки), живые события, система жалоб, панель модерации прямо внутри комментариев или на сервисе, и конечно же, автоматический инструмент по переезду с аналогов.
Мысли вслух
Я бы хотел рассказать о некоторых важных уроках, полученных мною во время реализации проекта.
Слушайте своих клиентов
Не стоит 100% самому придумывать новый функционал, дайте волю своим клиентам. Очень важно остановиться и прислушаться к ним. Зачастую они сами скажут вам о том, чего они хотят. Какие есть проблемы, за что они готовы платить, а за что нет. Для этого мы даже создали небольшой раздел, где каждый из клиентов может предложить свою идею или поддержать существующую.
В то же время нужно научиться видеть границу между абсурдностью предложенного и реальной пользой для бизнеса/других клиентов. Стоит обратить внимание на паттерны, когда та или иная идея повторяется от клиента к клиенту.
База знаний
Создайте удобную и обширную базу знаний, иначе большая часть вашего времени будет уходить на поддержку. Намного лучше отправить ссылку на страницу, где клиент получить полный ответ с картинками, чем отвечать на один и тот же вопрос 10 раз.
Для удобства составления базы знаний вы можете записывать все задаваемые вопросы в поддержку, из этого сформировать группы и начать писать.
Мы до сих пор активно занимаемся составлением базы знаний. Каждый раз находим что-то новое для объяснения или улучшения старого.
Не ждите, когда все будет готово
Проект стоит запускать, как только у вас есть MVP. Не стоит ждать момента, когда появится все, что вы запланировали. Клиенты относятся с пониманием к возможным факапам, когда начинают пользоваться новым сервисом. Главное, чтобы сервис имел пользу и оперативную поддержку.
Что было дальше?
На этой статье история не останавливается, я бы хотел написать серию статей о том:
- роудмап проекта на ближайшее будущее
- как именно мы подошли к монетизации проекта, выбору ценовой политики, какие идеи провалились и почему
- почему выбрали именно такой технологический стек, какие были трудности во время реализации
Если вы хотите, чтобы я раскрыл какие-то другие детали — пишите в комментариях уточняющие вопросы, и я их также раскрою в следующей публикации.
И, конечно же, если у вас есть пожелания или замечания — пишите комментарии, я постараюсь ответить всем.