Дневник стартапа IC4U. Часть 3. Наше секретное оружие или как мы сделали MVP за три дня

Предыдущие выпуски:

Дневник стартапа IC4U. Часть 3. Наше секретное оружие или как мы сделали MVP за три дня
MVP (Minimum Viable Product) - сырая версия приложения, слепленная из чего-попало за максимально короткий срок, чтобы было чего показать инвесторам и протестировать гипотезу, что это вообще кому-то нужно

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

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

Дневник стартапа IC4U. Часть 3. Наше секретное оружие или как мы сделали MVP за три дня

Пару слов о волшебной таблетке под названием “No-code”

No-code технологии позволяют разрабатывать мобильные и веб-приложения (и даже телеграмм-ботов) без использования языков программирования. Поэтому, при создании MVP нашего стартапа мы не написали ни строчки кода (ну, почти). Принцип очень простой: вы описываете логику приложения не в виде кода, а в формате визуальных блок-схем. Поэтому, ноукод еще называют “визуальным программированием”.

Вот простой пример, в котором доктор Дэвид Малан, автор легендарного гарвардского курса по основам программирования “СS50” демонстрирует разницу между кодом и ноукодом:

Доктор Дэвид Малан из Гарварда поясняет за ноукод
Доктор Дэвид Малан из Гарварда поясняет за ноукод

Задача: сравнить два числа X и Y. Слева мы видим решение этой задачи с помощью ноукод-платформы Scratch, справа - все тоже самое, только на языке С.

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

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

Например, образовательная онлайн-платформа для школьников Tutgood полностью разработана с помощью ноукод-технологий. Я это знаю не понаслышке, так как более полутора лет проработал в этой компании разработчиком. Да, вы не поверите, но есть такая профессия - ноукод-разработчик. Это довольно молодая специальность, но на рынке труда уже есть вакансии. И даже есть онлайн-школы, где обучают ноукод разработке. Среди них я бы выделил Zerocoder и Code Breakers. Кстати, мне даже довелось преподавать no-code разработку в школе Geek Brains в рамках учебной программы “Разработчик”. Так что, я немного в теме.

no code => no problem
no code => no problem

Продолжаю менять вашу картину мира IT. Среди современных ноукод-платформ существует специализация. Например, если вы разрабатываете веб-приложение, то вам подойдет платформа Bubble. А для разработки мобильных приложений подойдет Flutter Flow, который позволяет разрабатывать сложные кросс-платформенные мобильные приложухи. Для простеньких мобильных приложений подойдут платформы Adalo или Glide. И этот список можно продолжать бесконечно долго. На этой схеме изображен мир no-code инструментов во всем его многообразии:

No-code платформы с классификацией по направлениям
No-code платформы с классификацией по направлениям

Главная фишка no-code заключается в том, что для того, чтобы разработать приложение, вам не нужно нанимать команду разработчиков и платить им большие деньги (или самому тратить годы жизни на изучение программирования). Ноукод позволяет человеку без технического бэкграунда за короткий срок самостоятельно реализовать свою идею в виде реального приложения. Поэтому, ноукод - это идеальное решение для разработки MVP стартапа на ранней стадии. Особенно, если вы - не технический фаундер! И самое главное - ноукод позволяет создавать приложения быстро (очень быстро)! И вы убедитесь в этом, читая мой дневник.

No-code - это идеальное решение для разработки MVP стартапа на ранней стадии

Более того, вопреки расхожему мнению противников ноукода, такие проекты вполне себе легко масштабируются. Вопрос в том - насколько вы правильно подберете платформу (или несколько платформ) и насколько грамотно выстроете все процессы.

Наш стек: no-code + ИИ

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

Make - это no-code платформа общего назначения, которая позволяет автоматизировать бизнес-процессы и связывать между собой разные сервисы. И все это реализовано в лучших традициях визуального-программирования (то есть без кода) в виде блок-схем с ветвлениями:

Магия no-code на примере платформы Make. Те же самые блок-схемки с уроков информатики, только сексуальнее. И ни строчки кода!
Магия no-code на примере платформы Make. Те же самые блок-схемки с уроков информатики, только сексуальнее. И ни строчки кода!

На этой картинке показана простоая блок-схема (в Make такие блок-схемы называются "сценариями"), с помощью которой реализована следующая логика:

1) добавляем все входящие письма в Google-табличку

2) обрабатываем вложения к письмам:

  • если во вложении картинка - постим ее на Facebook
  • если во вложении документ - добавляем его в zip-архив и “заливаем” на Dropbox

А вот так выглядел алгоритм работы (сценарий) самой первой версии нашего телеграм-бота:

первая версия алгоритма работы (сценария) для телеграм-бота IC4U
первая версия алгоритма работы (сценария) для телеграм-бота IC4U

А вот так эта первая версия выглядела в Телеграмме:

первая версия интерфейса телеграм-бота IC4U
первая версия интерфейса телеграм-бота IC4U

Чтобы вы понимали, самую первую версию мы сделали за 3 дня. И делал это 1 человек (ваш покорный CTO) в свободное от основной работы время. Спустя пару месяцев активной разработки основной сценарий стал выглядеть немного более устрашающе:

основной сценарий бота IC4U спустя пару месяцев разработки
основной сценарий бота IC4U спустя пару месяцев разработки

Каждый раз, когда я представляю как бы я реализовывал этот алгоритм на Python, по моему телу пробегает дрожь и выступает холодный пот. Это основной сценарий, который реализовывает взаимодействие пользователя с ботом. И, конечно, он не единственный: есть еще второй сценарий, который отвечает за рассылку новостей пользователям. Всего у нас 6 активных сценариев, но основных - два.

Каждый раз, когда я представляю как бы я реализовывал этот алгоритм на Python, по моему телу пробегает дрожь

Как это работает?

Вот как все это работает на одном простом примере (на языке тестировщиков это называется модным словом “test-сase”):

Этап 1:

  • Пользователь Вася заходит в бота и нажимает кнопку “Добавить проект”
  • Вводит название крипто-проекта, за которым хочет следить (например, Ethereum)
  • Система ищет в базе данных (Airtable) этот проект
  • Бот выводит список найденных проектов в виде кнопок (по запросу Ethereum существует несколько проектов и система находит Ethereum и Ethereum Сlassic)
  • Вася нажимает на кнопку с названием нужного проекта (Ethereum)
  • Мы добавляем Ethereum в список проектов, на которые подписан Вася
  • отправляем сообщение Васе о том, что он успешно подписан на Ethereum и теперь будет получать в бота все важные новости по этому проекту

И за все эти шаги отвечает первый (основной) сценарий “IC4U-Main”

Этап 2:

И вот, спустя пару часов, выходит долгожданная новость, в центре внимания которой наш “любимый” Ethereum. Bот что происходит потом:

  • система ищет в базе данных (Airtable) всех клиентов, которые подписаны на Ethereum

  • находит Васю и еще парочку любителей Ethereum (Коля и Петя) и рассылает им "веерно" в бота текст новости

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

И вот за второй этап уже отвечает второй сценарий - “IC4U-Send Notification”:

“IC4U-Send Notification” - сценарий рассылки новостей пользователям
“IC4U-Send Notification” - сценарий рассылки новостей пользователям

Обратите внимание на самый первый оранжевенький кружочек в этом сценарии (кстати, каждый кружочек в Мэйк называется “модулем”). Так вот, этот модуль собирает все свежие новости из новостных источников, и уже потом мы эти новости обрабатываем и рассылаем клиентам. И все это работает с использованием технологии RSS.

Основная идея заключается в том, что мы собираем RSS-ленты по всем крипто-проектам из разных источников (новостные агрегаторы, Твиттер и т.д.) и объединяем их в одну общую RSS-ленту с помощью сервиса RSS.app. Далее, эти новости мы уже адресно рассылаем пользователям, в зависимости от тех проектов, на которые они подписаны.

Упрощенная схема рассылки новостей IC4U: объединяем все новостные RSS-ленты по крипте в одну, фильтруем их и рассылаем пользователям в Телеграм (пользовател получает только те новости, на которые подписан)
Упрощенная схема рассылки новостей IC4U: объединяем все новостные RSS-ленты по крипте в одну, фильтруем их и рассылаем пользователям в Телеграм (пользовател получает только те новости, на которые подписан)

Вот так, кстати, выглядит интерфейс бота по состоянию на момент написания этой статьи:

интерфейс бота IC4U на момент написания этого поста
интерфейс бота IC4U на момент написания этого поста

А вот это - фрагмент таблицы с клиентами в Airtable:

Airtable: Google-таблицы "на стероидах"
Airtable: Google-таблицы "на стероидах"

Первый столбец - это Chat ID клиента, по которому мы идентифицируем его в Телеграмм, второй столбец - это имя пользователя, а в столбце Projects List мы храним список проектов, на которые пользователь подписался. Не пытайтесь найти в таблице Васю - это выдуманный персонаж, использованный для примера.

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

Поле Projects List связано с отдельной таблицей Projects, в которой мы храним список всех основных крипто-проектов. Airtable чем-то похож на Google Sheets, только с расширенными возможностями и более приятным интерфейсом или, если угодно, - Google-таблицы "на стероидах". Это некий аналог системы управления реляционными базами данных, заточенный под ноукодеров, который избавляет вас от необходимости изучать язык SQL.

Неужели совсем без кода?

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

Были некоторые задачи, которые нам НЕ удалось решить с помощью ноукода. И тут нам пришлось предать свои идеалы и перейти на темную сторону. В частности, чтобы сделать красивые кнопочки со списком проектов внутри сообщений, нам пришлось немного покодить. Но совсем чуть-чуть.

Вот эти самые модные кнопочки (inline keyboard):

чтобы сделать эти кнопочки, пришлось немного "покодить"
чтобы сделать эти кнопочки, пришлось немного "покодить"

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

отдельный модуль, который исполняет JavaScript код внутри Make
отдельный модуль, который исполняет JavaScript код внутри Make

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

Дневник стартапа IC4U. Часть 3. Наше секретное оружие или как мы сделали MVP за три дня

Прости, дорогой читатель, я нарушил свое обещание не пугать тебя фрагментами кода в своем рассказе. Но это всего лишь один пример и сейчас я укрою тебя теплым пледом, налью горячего чая с медом и немного успокою. Дело в том, что этот код писал вовсе не я, а мой старый приятель Сhat GPT. Это как будто “взять помощь клуба” в передаче “Что? Где? Когда?” и обратиться со сложным вопросом к Александру Друзю или другим магистрам клуба.

Когда нам нужно написать код...
Когда нам нужно написать код...

Специально для тебя, мой читатель, я публикую фрагмент моей тайной переписки с Chat GPT:

"Я к вам пишу - чего же боле…."
"Я к вам пишу - чего же боле…."

Ответ Chat GPT:

Chat GPT - это такой опытный программист, который работает 24 часа в сутки, знает все языки программирования, не просит кушать и ему не надо платить зарплату
Chat GPT - это такой опытный программист, который работает 24 часа в сутки, знает все языки программирования, не просит кушать и ему не надо платить зарплату

Далее - дело за мылым: вставить этот код в отдельный модуль в Make и немного его настроить. Конечно, здесь не помешают базовые знания в программировании на уровне детского садика. Желательно знать что такое переменные, функции и как они работают. Но чтобы разобраться во всем этом вам будет достаточно побеседовать с Chat GPT, закидывая его глупыми вопросами типа “Объясни мне простым языком основы программирования за полчаса с учетом того, что я полный гуманитарий”.

Chat GPT - это такой опытный программист, который работает 24 часа в сутки, знает все языки программирования, не просит кушать и ему не надо платить зарплату

Таким образом, даже тогда, когда нам приходится писать код, мы его не пишем - за нас это делает Сhat GPT. А наша задача - грамотно поставить задачу! Кстати, грамотной постановкой задачи для Сhat GPT занимаются так называемые промпт-инженеры. Это тоже новая профессия, которая очень тесно связана с ноукод-разработкой. Поэтому, мы - ноукодеры - еще и немножко промпт-инженеры.

На этом, мой дорогой читатель, я заканчиваю свой увлекательный рассказ о “секретных” технологиях, которые мы использовали при создании MVP нашего проекта. Надеюсь, этот рассказ поможет тебе принять правильное решение в выборе технологии в следующий раз, когда ты соберешься запускать свой очередной стартап. Возможно, кто-то из вас захочет поближе познакомиться с ноукод-разработкой и промпт-инжинирингом. А возможно, вы опытный CTO в крупном стартапе, который завтра соберет всю cвою команду разработчиков, положит на стол распечатку этой статьи и скажет:

“Какие, нахрен, полгода?! MVP должен быть готов через неделю! И ни строчки кода, м.... вашу!”

Не забудь поставить ❤ и подписаться, чтобы не пропустить новые выпуски дневника!

Предыдущие выпуски:

66
4 комментария

а какие вообще сложности возникли в процессе разработки?

1
Ответить

Ой, про ошибки можно сделать отдельный пост и он будет самый длинный)

Очень частая ошибка - это автоматическое отключение сценариев в Make при возникновении ошибок. Приходится периодически исправлять их, чтобы возобновить работу бота.

Когда мы добавили фичу с аналитикой новостей с помощью ИИ, то у нас очень быстро израсходовались все средства на балансе Open AI. Сейчас мы отрубили аналитику и разбираемся с этим...

Еще одна проблема - это оплата ноукод-сервисов: Make, Airtable, RSS.app и Chat GPT. Нам приходится использовать виртуальные карты и у этих карт бывают сбои. Например, сейчас мы не можем пополнить баланс и оплатить сервис Make. Из-за этого у нас вообще бот сейчас не работает...

3
Ответить

А с какой задержкой приходят новости в телеграмм-бота?

1
Ответить

Сейчас задержка в интервале от 1 до 20 минут. И это главная проблема, над которой мы сейчас активно работаем. Мы планируем добиться получения новостей мгновенно, с задержкой не более 100 милисекунд. Об этом будет отдельный выпуск дневника - следите за обновлениями!

3
Ответить