Как разработчик я люблю тратить время на пет-проекты и что-то программировать, но не люблю тратить время на маркетинг и хоть как-то их продвигать. Знакомо?
Сегодня я хочу рассказать, как в 2019 году я придумал и внедрил механику тестов в Instagram, делал легкий маркетинг и проверил нужно ли это рынку.
Меня зовут Павел Поляков, сейчас я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в ???????? Германии. Эта и другие истории из моего опыта привели меня к созданию Telegram-канала Хороший разработчик знает, где я рассказываю обо всем, что обычно знает хороший разработчик. Сейчас давайте узнаем, что произошло в 2019.
Как все началось
В 2015 году я переехал из Украины в Германию, в Гамбург. Основным языком в компании, где я работал, был английский. Необходимости учить немецкий не было. Но какое-то желание учить язык присутствовало, ведь вокруг столько всего немецкого.
В итоге я походил на курсы, сам поучил немецкий с помощью книг, а еще подписался на несколько Instagram-аккаунтов учителей немецкого. Наш мозг так любит иллюзию, что мы что-то учим, когда просто читает ленту в Instagram или смотрит истории.
Наступил конец 2018-го, я все еще учил немецкий. Возможности Instagram для обучения и сейчас достаточно ограничены, а в 2019 их было еще меньше. Но все равно, владельцы аккаунтов, работали над вовлечением аудитории и добавляли интерактив. Одной из популярных механик была проверка знаний в историях. Выглядело это примерно так.
Задавался вопрос и с помощью стикера “Опрос” предлагалось два варианта ответов. Пользователи отвечали и потом, в одной из следующих историй автор объяснял, какой ответ правильный.
Иногда авторы делились какой-то полезной информацией, прикрепляя ссылку к истории. В таком случае нужно было потянуть снизу-вверх, и открывался встроенный браузер с какой-то интернет-страничкой.
Все это было не очень удобно, но других вариантов не было. Именно это подтолкнуло меня к идее нового пет-проекта. Я подумал — а что если совместить встроенный браузер и интерактивные механики? Пусть пользователи тянут снизу-вверх, учат немецкий на специальном мини-сайте, а потом закрывают браузер и возвращаются в Instagram.
Выбор домена
Что мотивирует разработчиков придумывать пет-проекты? Покупка доменного имени. Первым делом надо придумать красивое доменное имя и купить его, а потом уже начинать пет-проект. А может и не начинать, такое тоже часто бывает.
Доменное имя, которое я придумал, дало мне хороший буст мотивации. Я назвал проект qqq.cards
. q
— потому что question, ведь пользователя будут о чем-то спрашивать. qqq
— потому что это красиво. А .cards
— потому что сервис будет отображать мини-карточки, которые будут показываться во встроенном браузере в Instagram.
Но я был уже опытный пет-проджект разработчик, поэтому решил сначала проверить возможно ли то, что я придумал в принципе, а только потом покупать домен.
Проверка
Сейчас каждый пользователь Instagram может размещать в сторис ссылки. А тогда, в 2019, это могли делать только бизнес аккаунты, у которых было больше 10.000 подписчиков. У меня такого аккаунта не было. Но я хотел проверить — что можно делать в таком встроенном браузере?
Первым делом я пошел на какой-то сомнительный сайт и купил готовый аккаунт, накачанный ботами. Я авторизовался под этим аккаунтом, начал добавлять сторис и...не увидел ничего, про размещение ссылки ????♂.
Я решил попробовать еще раз, но на этот раз предварительно спросить у продавца, есть ли такая возможность. Так я купил второй аккаунт. Зашел в него и...ничего не было. Но, к счастью, через день возможность размещать ссылки появилась.
Теперь нужно проверить, можно ли таким образом размещать тесты. Я создал простое приложение, с помощью create-react-app, набросал простой тест из двух шагов, разместил его онлайн и проверил. Все работало! Пользователь мог открыть ссылку (свайп вверх), пройти тест, увидеть результат и вернуться в Instagram.
Кажется, все уже доказано и можно погружаться в разработку? Нет, не совсем. Я вознаградил себя за старания покупкой домена, но решил сделать еще одну проверку — на настоящих пользователях.
Подтверждение гипотезы
Я был подписан на одного преподавателя — Свету и ее аккаунт perfectes_deutsch. Я связался с ней, рассказал про идею и, к моему счастью, Света согласилась разместить полноценный тест в своем аккаунте.
Она создала контент, я сделал более полноценное React приложение и разместил его онлайн, уже на домене qqq.cards. Вот тот самый тест, можете проверить уровень своего немецкого.
Светлана опубликовала его и попросила подписчиков дать фидбэк. Он был полностью положительный.
Я, в свою очередь, собрал аналитику с помощью Google Analytics. Вот так выглядела воронка прохождения теста.
241 пользователь начал тест, 150 из них завершили.
Эти данные меня мотивировали: кажется, мы доказали, что такой формат нужен пользователям и нужен преподавателям — для большего вовлечения пользователей.
Разработка
Все, теперь точно разработка. Мы ведь доказали, что наш сервис будет пользоваться спросом. Если техническая часть вам не интересна, то смело пропускайте этот раздел.
Я совершил стандартную ошибку разработчика и решил делать все “правильно” и на века. Хотя нужно было сделать все — как умею и быстро.
Термина “микрофронтэнд” тогда еще толком не было, но я решил, что мой проект будет состоять из микросервисов (это уже было) и микрофронтэндов. В итоге я разработал монстра, которого было сложно разрабатывать одному, было сложно запустить локально и было сложно задеплоить. Зато все работало.
У меня был gateway на fastify и fastify-http-proxy, который обрабатывал весь трафик и распределял его дальше:
{
"proxies": [
{
"upstream": "https://auth-api.qqq.cards",
"prefix": "/auth/api",
"rewritePrefix": "/api",
"http2": false
},
{
"upstream": "https://decks-api.qqq.cards",
"prefix": "/manager/api/decks",
"rewritePrefix": "/api/decks",
"http2": false
},
{
"upstream": "https://decks-api.qqq.cards",
"prefix": "/q/api/q/decks",
"rewritePrefix": "/api/q/decks",
"http2": false
}
]
}
Деплоилось все на Vercel, который в то время был еще zeit.co . А данные хранились в PostgreSQL, которая хостилась на моем сервере в DigitalOcean.
Судя по истории в github, на разработку ушло два месяца — с ноября 2018 по январь 2019.
В результате я зарелизил такой функционал:
можно было логиниться (но не регистрироваться)
создавать тесты с помощью yaml разметки, работал предпросмотр тестов
можно было опубликовать тест и он становился публичным, доступным по уникальному ключу
Это и был мой MVP, пришло время познакомить мир с этим великолепным и нужным всем сервисом.
Как все выглядело
Для главной страницы своего сервиса я смонтировал два видео. Вы можете посмотреть как это выглядело со стороны создателя тестов и со стороны пользователя.
Маркетинг
Обычно пет-проекты разработчиков умирают потому, что они работают только над продуктом и не занимаются маркетингом. В итоге несмотря на хороший (возможно) продукт, о нем никто не знает, а еще они не собирают фидбэк от пользователей и делают не то, что нужно рынку.
Я это знал и хотел тратить время на маркетинг. Не тот, где я трачу деньги, а тот, где я трачу свое время, это ведь пет-проект.
Согласно моей гипотезе, мой сервис должен был быть интересен преподавателям языков в Instagram. Я собрал 20 аккаунтов преподавателей немецкого в Instagram, создал для них аккаунты и написал всем личные сообщения.
Текст сообщения
Добрый день редактор deutschonline,
Меня зовут Павел, я разработчик из Гамбурга. Являюсь подписчиком вашего аккаунта, спасибо, что помогаете учить немецкий :)
Я хочу предложить вам разнообразить обучение в instagram с помощью сервиса который я разрабатываю. Сервис позволяет вставлять тесты прямо в instagram. Сейчас находится в активной разработке, но уже получил хорошие отзывы от учеников.
Здесь подробнее https://qqq.cards .
Я создал аккаунт для вас:
deutschonline@qqq.cards
qL6dbNcE4asb+Kp
Залогиниться можно здесь: https://qqq.cards/auth
Демо аккаунт где можно пройти тест (в истории и шапке профиля): https://instagram.com/men.s_classic.7/
Попробуйте и задавайте любые вопросы. Более того - я готов активно улучшать текущий функционал в зависимости от ваших пожеланий. Давайте сделаем обучение в Instagram еще более интересным. Буду рад ответить на любые ваши вопросы.
Хорошего дня!
Двадцать холодных сообщений конвертировались в один продуктивный диалог с Соней, автором deutsch.mit. Соня согласилась попробовать сервис со своей аудиторией.
Эксперимент
Я немного переживал, что не техническим людям будет сложно разобраться с yaml форматом и самостоятельно создать тест. Но Соня справилась самостоятельно, без очевидных проблем, это меня обрадовало.
Соня разместила тест и результаты были следующими:
С 4000 просмотров 10% пользователей пошли проходить тест. Охваты следующей истории упали на 600 просмотров, 300 пользователей отметили, что им понравился такой формат.
Потом Соня провела другой эксперимент — конверсия при тестах без покидания Instagram.
Фактически, конверсия между историями оказалась одинаковой — ~87%.
Но были и другие факторы:
В результате один продуктивный диалог из 20 холодных контактов конвертировался в 0 пользователей. Света, из первого эксперимента, тоже не стала использовать сервис самостоятельно.
Закат
Мой пет-проджект энтузиазм упал. Я увидел, что внедрение продукта будет требовать больших усилий. Текущей функциональности было недостаточно, чтобы мотивировать преподавателей использовать его. Другими словами их наилучшая альтернатива (неудобные тесты в Instagram) достаточно закрывала их потребности.
Я перестал активно заниматься этим проектом, а в апреле 2019 Instagram нанес ответный удар и сам сделал доступным похожий функционал.
Пет-проект qqq.cards был отправлен на кладбище пет-проектов, а я занялся чем-то другим.
Выводы
Какие выводы можно сделать? Я делаю следующие:
Недостаточно сделать что-то хорошее. Это хорошее должно еще и оказаться действительно кому-то нужно.
Для хорошего стартапа нужны Hipster, Hacker и Hustler. Очень здорово, что в этом проекте я занимался не только разработкой, но и маркетингом.
Не оптимально, что я инвестировал в техническую разработку больше, чем требовалось. Было бы лучше и быстрее, если бы я сделал проект с простой архитектурой. Например, обычный монолит.
Тащить проекты одному тяжело. Эту ошибку я продолжаю делать и сейчас. Но давайте ее зафиксируем письменно. Лучше работать в команде.
А еще...
В конце еще раз приглашу вас в свой Telegram-канал. На канале Хороший разработчик знает я минимум три раза в неделю простым языком рассказываю про свой опыт, хард скиллы и софт скиллы. Я 15+ лет в IT, мне есть чем поделиться. Все это нужно разработчику, чтобы делать свою работу хорошо, быть востребованным на рынке и получать высокую компенсацию.
А для любителей картинок и историй есть ???? Instagram.
Спасибо ????
jMas
Это субъективно? Или как то тестировалось. Выглядит как недоказанная гипотеза.
PavloPoliakov Автор
Субъективно. Я имел в виду, что в текущем Instagram формат простой - 1 тест и сразу результат. А в моем варианте, например, можно было пройти 10 вопросов и получить какой-то итоговый результат.