«Не такой» генератор сайтов Innstoria. Парсинг, кросс-платформа и сила MVP

Майским вечером 2020-го двое разработчиков из Киева начали делать 5-й совместный проект, смеясь над тем как снова будут прекращать поддержку из-за нехватки юзеров. Спустя пол года разработки и два месяца функционирования сервиса решили написать здесь, поделиться опытом, словить мнений и вообще.

Привет, мы разработчики https://www.innstoria.com — сервиса призванного решить головную боль владельцев маленьких магазинов в Instagram.

Что с идеей?

Идея пришла самым прямым образом, чему мы были несказанно рады — в нашем кругу общения оказались люди, которые продавали различные товары через Instagram. Постепенно недовольство некоторыми особенностями торговли на этой платформе стало складываться в четкую проблематику, которую конечно-же захотелось решить. Среди проблем выделялись:

  • вне Instagram магазина просто нет. Его можно найти по названию, но товары не индексируются в поисковиках
  • товары можно только «заказать», расстреливая директ админов и надеясь что товар есть в наличии
  • никаких фильтров — полотно с товарами, самые интересные товары могут оказаться на самом дне

И это только самые явные недостатки. В общем и целом стало очевидно, что Инстаграм не предназначен для продажи товаров, но используется для этой цели из-за простоты в использовании и настройке, бесплатности и известности. Тут-то и стрельнуло «А что если?», и вспомнив о предыдущем опыте парсинга данных мы сели пилить MVP.

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

Зачем, если есть куча конструкторов?

Основная проблема конструкторов сайтов — стоимость (напомню мы говорим о маленьких магазинах, у которых нет денег или их совсем мало), необходимость так или иначе всё собирать руками, а в случае интернет-магазина еще и необходимость постоянно наполнять магазин с админки.

Делая сайт на конструкторе владелец магазина в Instagram создает себе еще одну отдельную заботу, на которую нужно будет тратить время, усилия и деньги.

Сервис который мы задумали должен убивать сразу всех зайцев:

  • сайт генерируется в один клик по названию магазина (подтверждение высылается в директ)
  • товары подтягиваются автоматически — роль админки отыгрывает инстаграм. Добавляешь новый пост — получаешь новый товар на сайте
  • SEO для товаров и магазина — новый источник пользователей
  • это бесплатно

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

Чтобы сделать всё максимально близко к привычкам владельцев магазинов и их потенциальным покупателям мы решили пойти по пути mobile first и взяли за основу нашего UI кросс-платформенный Ionic: всё будет выглядеть как обычно выглядит на телефоне, а если надо будет — завернем в аппку. Вроде круто…

Как поднималось

Основные функции удалось реализовать за 1.5 месяца работая по вечерам. На этом этапе проблем с парсингом не возникло (истерический смех). А вот следующие 4 месяца ушли на то, что-бы фиксить баги и воевать с Instagram. Но обо всем по порядку.

Кросс-платформа и почему она

Ionic — это мощно. Разнообразные UI решения которые прикручиваются за пол оборота, возможность делать как близкие к нативным приложения, так и веб приложения отлично подходящие для мобильных телефонов, включая PWA.

Но да будут отпущены грехи разработчикам, которым пришлось приводить функциональность всех этих платформ к единому состоянию. Пишешь — всё работает. Запускаешь на iOS — обнаруживаешь что фиксированный хедер не фиксируется, а кнопка плодится по экрану при скролле.

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

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

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

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

Парсинг и боль

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

Здесь я-бы отметил первый важный момент о котором стоит помнить при запуске проекта основанного на парсинге: Если вы базируете свой проект на чужих данных — будьте готовы к проблемам с их сбором.

Ни один сервис не будет доволен что из его данных кто-то извлекает пользу (даже если это самые обыкновенные открытые данные), и так или иначе придется бороться за надежность работы подобного сервиса.

У нас это проявилось в том, что в какой-то момент мы стали получать сообщения от владельцев магазинов, которые хотели создать магазин, но у них ничего не работало из-за того что наш сервер размещен не в той стране, откуда был зарегистрирован аккаунт для парсинга — Instagram валит нас челенжами на подтверждение личности. А самое обидное — они не работают и продолжают всплывать на каждый чих. Спасло только подтверждение через смс, и то не на долго.

Мы отлаживали этот момент много раз и достигли рабочего состояния, но всё-еще дрожат коленки от мысли что нельзя просто так взять и сделать сервис на чужих данных.

Вывод: Парсить данные — это весело и кажется простым способом раздобыть основание для проекта, но это с высокой вероятностью отстреливает сразу оба колена.

Деплой и распыление

Когда всё подходило к деплою, покупке домена и хостингу, случилась идея: Что если предоставить пользователям доп. функциональность в виде своего собственного саб-домена, на котором размещался-бы магазин? Ну круто-же когда у тебя свой сайт с приставкой сервиса (допустим, boots.innstoria.com), хорошо для имиджа да и вообще — мы такого не настраивали раньше, почему-бы не попробовать?

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

Желание добавить красивостей или что-то улучшить — здравое, но не на этапе разработки MVP. Лучше сделать его как можно быстрее на всех костылях планеты чтобы быстрее понять нужно оно кому-то или нет. Если нет — не потратили лишнего времени, если да — переписать плохой код проще когда его не много.

Стоит так-же сказать что желание что-то докрутить всегда подначивается внутренним ощущением «да тут же на 5 минут работы». Это всегда не правда и отберет больше времени, которое можно было-бы потратить с пользой.

Мы об этом забыли и потратили лишний месяц на настройку и отладку сабдоменов, более того пришлось доплачивать валютой за наличие https, ведь с сабдоменами он работает не так просто. На выходе-же мы получили не более чем красивую url для пользователей, которых на тот момент еще и близко не было.

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

Вывод: Четко определите что включает в себя MVP вашего проекта и не отходите от него. Это позволит быстрее валидировать идею и секономит нервы..

К чему пришли

После нескольких кругов ада, которые переросли в бесценный опыт и солидную прокачку скиллов, проект пришел к важному этапу, на котором встали новые вопросы: А что по юзерам?

Проект работает, но как достучаться до пользователя?

Мы попробовали несколько вещей:

  • прямые предложения владельцам магазинов через инстаграм. Здесь есть минус связанный с отображением сообщений от аккаунтов на которые пользователь не подписан. Из 42 разосланных предложений 2 человека создало магазины на нашей платформе. Большинство скорее всего даже не видели сообщения.
  • звать заинтересованных друзей. Наверное не будет ново, но стоит отметить — для начального уровня проекта это лучший источник пользователей и фидбека. Именно когда речь о тех, кому это нужно — они сразу запрашивают максимум от сервиса и честно говорят насколько всё плохо.
  • самый забавный способ который мы попробовали — создать магазины существующим магазинам в надежде, что через поисковики кто-то придет и закажет, таким образом давая владельцам знать о нашем сервисе и их магазине. Нам показалось что это гениальный взлом системы — искать своих пользователей через их пользователей. Выхлоп — 0 регистраций.

На данный момент остается только платная реклама, успех которой мы предвидим где-то на уровне «ну мы попробовали» и мнения комьюнити vc.ru по поводу сервиса, статьи и чего-либо что захочется ответить на нашу историю.

Итог

Делать проект — интересно, весело и полезно, но удручающе, когда он начинает стопориться. Стоит придерживаться своего плана на MVP даже когда очень захочется что-то улучшить, выбирать инструменты с оглядкой на минусы и стараться получать всевозможный фидбек — без него ничего не будет. К тому-же так связка «получить опыт» и «сделать продукт» будет работать более слаженно.

Edit: Спасибо комментарию Антона Смурова - мы конечно же будем развивать проект дальше, улучшать фичи и обязательно вернемся с новыми цифрами и метриками как только будет что ещё рассказать.

К слову о фидбеке: после потраченного времени и усилий, которые конвертировались в опыт и какой-никакой продукт, хочется услышать замечания или советы от тех, кто уже пошел дальше и вообще любые за и против касательно всего что здесь написано.

Будем рады любой критике, мнениям и ссылкам. Спасибо то читали)

1616
48 комментариев

Не понятны выводы - вы закрываете проект? Или будете продолжать его развивать? Кто в вашей команде, такое ощущение, что только разработчики - не пытались найти себе маркетолога/продажника?
Что с фидбэком, заказы через ваш сервис у зарегистрировавшихся магазинов были? Магазины вообще индексируются, трафик есть? Владельцы магазинов довольны, они получили от вас какую-то пользу?
В чем вы планировали свою выгоду, брать процент с заказов?

Ах да, и примера магазина не хватает. На сайте тоже не нашел примера.

4
Ответить

Проект 100% будем развивать, но да, вы все правильно поняли - в команде 10 ролей умещены в 2-х разработчиках и это одна из проблем. Продажника мы-бы хотели, но где его искать? Им проще в аутсорс пойти на норм деньги чем присоединяться к двум разрабам за идею.

По фидбеку - нам зашло пару пожеланий от пользователей о доп. функциональности которую они хотят видеть (мы над этим уже работаем), так-же активно связывались по поводу багов, что приятно удивило - мы думали что этим никто не пользуется, а здесь неподдельный интерес к работоспособности.
На счет заказов - здесь та-же проблема что и выше: Есть продукт, не знаем как дотянуться до пользователей. Магазины индексировались пока нам не пришлось изменить все url магазинов из-за ограничений по символам в Instagram (к примеру нельзя использовать "_"). Это было буквально недавно из-за чего сейчас большинство ссылок в поисковиках сломаны. Но это поправим и вернемся с цифрами позже :)  

Пока говорить о пользе рано так как некоторые фишки необходимые для пользования появились относительно недавно (в частности с символом "_" нельзя было установить ссылку на магазин в шапке профиля). Но количество магазинов растет - сейчас уже 65, для нас это показатель что интерес есть, значит с улучшением сервиса будет расти и польза (к чему мы и стремимся).

Примеры магазинов: 
https://makemygift-.innstoria.com
https://obana-shop.innstoria.com/

Кстати о примерах - хорошая идея, мы почему-то ее отбросили, теперь видим что полезно, сделаем, спасибо)

Ответить

А в чем проблема с https для субдоменов? Letsencrypt wildcard сертификат бесплатный.

1
Ответить

Мы рассматривали этот вариант. Из минусов - они выдают сертификат только на 3 месяца, но что важнее - у нас Heroku а не свой сервер и мы не нашли способов интегрировать Letsencrypt. Возможно мы что-то проглядели, будем благодарны за ссылки

Ответить

делали с другом подобный проект ( instor (.) io - домен был)

тоже парсили инстаграм, популярные магазины...

идея обламилась на этапе что обработать заказ - сложно через инстаграм, а хотелось смесь crm-и обрабоьки заказов и сайта.

да и на АПІ истаграм очень жадный

1
Ответить

Забавно, даже названия чем-то похожи) Не находили ваш проект когда искали примеры подобных сервисов. 
У нас с заказом проблем вроде не возникало пока... Да и API мы используем не тот, который предоставляет Instagram - там реально бедно. 

Ответить