Смотрю на свой пет-проект в GitHub — осталось совсем немного до 1k звёзд. Идеальный момент для рефлексии, так что не судите строго. Плюс, я не в поисках лайков, а за полезность и фидбэк. Так, про что статья, про лайки и звезды? В этой статье, я рассказываю про свой путь, что я делал для развития проекта, чтобы про него узнали и он был полезен. И что большая часть материала про то, как получают звезды на GitHub сегодня не работает. Поговорим только о легальном трафике, без накруток.

Для тех, кто не знает, рассказываю, о каком пет-проекте пойдет речь. Не про очередной калькулятор или тайный Санта, а о сложной программе на Python и JavaScript с интересными решениями (Flask на Localhost + свой браузер на Electron и т. д.) и нестандартными библиотеками (Briefcase и т. д.). Программа имеет внутри более 50 нейросетей и оптимизирована для работы на компьютерах с небольшим количеством видеопамяти.
Инструмент для монтажа и генерации контента: фото, видео, аудио. Программа позволяет заменять и анимировать лица, исправлять неудачные фото, анимировать губы, удалять объекты, генерировать видео и картинки, клонировать речь или удалять шумы из аудио — многофункциональный инструмент с более чем 50 нейронными сетями. И это программа, большая часть функционала которой бесплатна (его код в Open Source открыт). Работает на Windows и Ubuntu (есть установщики), при этом есть онлайн-версия, доступная с десктопа, планшетов и мобильных устройств. А еще это API для внедрения и пивота в другие проекты. Получилось, кажется, кратко.

Начало положено
Проект я создал для своих нужд 26 апреля 2023 года. У меня была идея оцифровать свой голос, и я сделал для этого интерфейс, в котором можно генерировать Text-to-Speech и обучать модель Tacotron 2. Тогда я только начинал писать о разработке и разбираться, как работают нейросети, более простым языком в своем блоге. Наверное, с этого проекта и началось мое погружение. Самое странное для Python разработчика, что мой первый пост про проект был о том, как организовать гид по приложению на JavaScript, а уже второй более подробный, описывал технологии в основе (FlaskUI + Briefcase).
Добавление новых фич было связано только с двумя вещами: материалом для блога и функционалом, который позволял мне делать видео для этого блога. Были лайки и просмотры, но были ли звезды на GitHub? Ни одной, и это понятно, так как платформа, где я рассказывал о проекте, не была целевой для Open Source-разработчиков. Может, только от друзей-программистов, которым я рассказал про свой проект лично. Кстати, этой небольшой лафйхак.
Знакомьтесь на целевых митапах и рассказывайте про свои проекты, если это тулзы.
Писать много про проект
Нет, это не совсем так. Писать надо, согласен, но важно делать это на платформах, где есть целевая аудитория, и не просто про проект, а про его ценность. Важно, чтобы платформу читали люди, которые понимают суть идей, заложенных в проекте, могут оценить их значимость и применить на практике, например запустить репозиторий. В моем случае это была не только реализация кода, но и необычные решения, которые он воплощал.
Проект разрастался, пока в мае или июне я не опубликовал его на каком-то конкурсе от Росконгресса (что-то про смелые идеи). Там было небольшое одобрение, но не было пользователей и звезд. Тогда я понял, что нужно сделать проект доступнее и быть на открытых платформах. Может проект нравился людям, но у них не было и не должно было быть специальных навыков, чтобы его запустить (всё в один клик). Кроме того, я понял, что нужно появляться только в своей нише, а не пытаться быть везде. И вот идея с установкой "в один клик" сыграла значительную роль в развитии проекта.
На тот момент программа уже умела синтезировать речь, заменять лица и анимировать губы. И, вероятно, работала только у меня и других пользователей Linux.
Красивый README и митапы решают всё
Я уже прочитал множество статей о том, что нужен красивый README, митапы с разработчиками и прочее, что часто повторяется. Со временем я осознал, что это полный бред.

Работает это только в двух случаях:
-
Если у владельца проекта или участника команды уже есть раскрученный (прогретый) аккаунт, а не если он начинает с нуля.
-
Если его заметил популярный аккаунт и написал про него или сделал репост.
Следовательно, логика проста: надо развивать свои каналы с целевой аудиторией, только это будет работать в будущих проектах, а не ждать в очереди пока заметят.

Тем не менее, README обязательно должен содержать объяснение, как запустить ваш проект, а также требования. Здесь не важна красота оформления — главное, чтобы было понятно.
Ещё интересный пункт - почтовая рассылка и кнопочки на сайте. Вы серьезно? Для проектов с нулевой аудиторией?
Хабр и первые звезды на GitHub
7 августа 2023 года я написал свою первую статью на Хабре (вот она). В тот момент проект имел уже установщики. И вот они — первые звезды на GitHub и реальные комментарии от пользователей.

Тогда я понял, что это будет долгий и непростой процесс. Например, на Windows код требует отдельной отладки: нужно экранировать символы, некоторые библиотеки работают нестабильно или вовсе не собираются корректно. Даже те, что поддерживают Windows, вроде onnxruntime, зависят от Microsoft Visual C++ Redistributable, а для сборки могут потребоваться целые комплекты инструментов Visual Studio для C++.
Сейчас я, например, не могу интегрировать flash-attn в установщик для ускорения генерации, так как он требует сборки сразу под CUDA и процессор. Всё это я узнавал не из документации, а интуитивно — через собственные тесты и фидбэк пользователей. Например, свой опыт по работе с нейронными сетями я описал в этой статье.
Хабр принес много звезд, на графике видно, что до 200. Но, насколько я помню, на старте это было 50–60 и много активного фидбэка. Хабр хорош именно этим. Я продолжал добавлять новые технологии и писать об этом на Хабре, что давало свои плоды.
При этом я стал замечать, что про мой Open Source стали писать на китайском в Baidu (да, я иногда гуглил упоминания).
Dev.to, Reddit и выход на международный уровень
Тогда я впервые познакомился с Dev.to и Reddit. Я сделал пост на Dev.to (реврайт с Хабра), и его репостнула сама команда Dev.to в Reddit. Это принесло, несмотря на косяки в проекте и проблемы с работой на Windows, около 100 звезд.
Это больше, чем дал Хабр. Но, забегая вперед, это произошло как раз из-за репоста популярного аккаунта. Я пробовал писать на Dev.to, но обычно это приносило мало звезд (10–15) и мало фидбэка. А если писать на Reddit только про проект, даже с техническими деталями, то высока вероятность, что вас забанят, и никто не прочитает без активного (прогретого) аккаунта.
Так появились два основных источника трафика: Habr и Dev.to.
Видео как важный фактор продвижения
Я заметил, что пользователи, скачивавшие установщик, сталкивались с проблемами — как установить, что дополнительно поставить. Читать инструкции и разбираться мало кто хотел.
Тогда я начал снимать видео для своего YouTube. Программа стала понятнее, и это дало результат.
Трафик с длинных видео на YouTube был не очень большим, так как обычно шел дополнением к статьям. А вот Shorts с результатами работы программы приносили реальных пользователей.
Это ключевой момент, который почему-то редко упоминается в статьях о продвижении Open Source. Снимайте видео, которое показывает результат проекта — зачем он нужен людям и как делает их жизнь проще.
Но с YouTube было сложно. Какие-то ролики набирали тысячи просмотров, какие-то не доходили и до 100. Разобраться в алгоритмах платформы сложно, а снимать и монтировать постоянно — тяжело.
Тогда я стал рассказывать о проекте различным YouTube-каналам, в основном индусам. Позже, когда проект стал слишком крупным и я захотел частично его монетизировать, я делился с ними полным и безлимитным доступом.
Когда про ваш проект начинают говорить индусы — это реально приносит пользователей. Проверено.

Ещё один важный момент — индексация в поисковиках. Если материал индексируется по заголовку, он должен содержать название продукта и его суть. Если индексация происходит по тексту, то название в заголовке не обязательно, но его стоит упомянуть в тексте. Зависит от платформы, где вы его разместили. Вот в чём фишка: блог на сайте продукта, хотя его и не читают, на самом деле существует в основном для SEO и поисковых систем.
По мере развития своего блога, который изначально был полностью о разработке, я стал делать коллаборации с другими каналами (бывали и крупные), даже ходил на прямые трансляции и подкасты. Там была целевая аудитория для Open Source, и это, конечно, давало свои плоды. Недостаток заключается в том, что такой контент в трафике со временем затухает, всегда нужно что-то новое. Но вот ещё один полезный совет: расскажите про свой проект основателям тематических каналов. Для них это контент, для вас — трафик.
Еще из забавных фактов: когда я стал писать о разработке, ко мне стали часто обращаться за консультациями по нейронкам. Потом, когда я перестал (сейчас я в основном пишу про стартапы), обращаться перестали. Следовательно, материал о том, чем вы занимаетесь, и про Open Source проект должен быть постоянно свежим, а публикации для целевой аудитории — ежемесячными.
Итак, я постоянно следил за различными платформами и тестировал их: Пикабу, DTF, VC, Tproger и другие. Где-то материал заходил, где-то был хейт. Из всего списка мне понравились Pikabu и Tproger, от них есть профит. Но это нужно подбирать индивидуально под ваш проект. Вот полезный материал с данными о зарубежных и отечественных площадках, где можно писать про проект и какая там аудитория.
Меняться это нормально
И вот уже осень, и код стал стабильным, работал на различных ОС. Я решил большую часть проблем пользователей. Казалось бы, публикуйся дальше. И тогда мне на Хабре попадается пост про Product Radar. Там я впервые запустился со своим продуктом. Платформа была очень новой, и, естественно, больших результатов это не дало, хотя были скачивания. Тогда количество скачиваний уже перевалило за 1к, и было где-то 500 звезд. Я радовался, так как наконец-то получилось обогнать "петушиный язык" программирования, считаю это результатом. И с Product Radar я узнал о существовании Product Hunt.

Так что Product Radar сильно повлиял на развитие продукта. Началась зима, и я взял отпуск, чтобы полностью переосмыслить Wunjo, переделать интерфейс с нуля, заложить другие идеи. Пытался внедрить и fastapi, и aiohttp. Я работал над этим 3 месяца, и получилось так круто, что именно тогда, спустя год, я добавил платный функционал. Версии были две: Open Source Community Edition и платная Professional.
Первые продажи
И вот в мае 2024 года я впервые опробовал Product Hunt, и с него была совершена первая покупка приложения. Я даже не знал, что оказывается к Product Hunt нужно реально готовиться заранее, прогрев аудитории, посты. Я, как и многие, просто запустился, чтобы посмотреть, что это такое. И это на самом деле ошибка, так как Product Hunt сейчас неохотно дает повторный фичеринг (показывает ваш продукт на главной странице), а это сильно влияет на трафик. Так вот, один из советов, который вы не найдете где-либо: готовый и отлизанный Open Source публикуйте на Product Hunt. Я там даже находил статью от HuggingFace, научные проекты, и пет-проект тоже найдет свое место. Здесь трафик и платные пользователи, и звезды на GitHub. Еще одна проблема моего запуска — когда я полностью переделал Wunjo с нуля, она не была полностью отработана, и встречались баги, которые на некоторых устройствах ее крашили, что плохо повлияло на трафик (могло быть и лучше). Так что Product Hunt и Product Radar — это только для проектов, которые уже работают и максимально протестированы.
В целом, я продолжил работу над обновлениями для платной версии, увеличил объем видео-контента и завел страницы на Boosty и Patreon, чтобы создать сообщество, которое будет определять направление развития проекта. Я стал меньше писать о продукте в своем блоге (впервые за долгое время) и на Хабре, так как проект перестал быть полностью Open Source и сосредоточился на платной версии. Основной трафик теперь поступал от видео-обзоров — как от меня, так и от других блогеров, а также от статей, которые я уже не писал сам.
Осенью я узнал про DevHunt и запустился там. Без каких-либо вложений или подготовки мне удалось занять 3-е место, но трафик оттуда был почти нулевым. Возможно, я попробовал эту платформу слишком поздно, так как DevHunt изначально была ориентирована на Open Source и инструментов для разработчиков, а позже преобразовалась в платформу для платных проектов, не имеющих отношения к программированию. В итоге она потеряла свою первоначальную концепцию.
Новые идеи
В октябре у меня уже было около 800 звезд на GitHub. Я стал искать новые пути привлечения трафика для Open Source и нашел три идеи, которые сработали.
Первая идея: конкурс с подписками на продукт. Подход увеличивал трафик, но не приводил к значительному росту количества звезд.
Вторая идея: Когда я впервые попробовал CapCut, я понял, что нужна новая концепция. На тот момент Open Source и Professional версии продукта сильно отличались. Я решил все версии объединить, предложить функционал, который был бесплатным, с последними обновлениями, оставив сложный функционал и редкие фичи доступными по подписке. Например, недавно я добавил нейронную сеть, которая автоматически монтирует длинные видео по запросу пользователя (например, создает шорты или удаляет скучные моменты), и это доступно бесплатно.
Третья идея: коллаборации не только с каналами, но и с другими проектами. Я вернулся на Product Radar и Product Hunt, где первый даже оказался эффективнее второго. Запустив проект, я указал, что открыт к коллаборациям, собрал фидбэк — и это принесло свои плоды. Хотя мой продукт стал продуктом недели или месяца (и это не так важно), я получил хороший трафик, новые продажи и партнерства. Например, появилась онлайн-версия, а функционал стал пивотироваться в другие проекты. Я улучшил API и документацию, сделав их более понятными, в отличие от того, что было раньше. Дополнительно, я добавил Docker и Wunjo как whl пакет.
Пытался запуститься на AppSumo и Product Hunt. С AppSumo оказалось сложно разобраться, а вот с Product Hunt я подготовился лучше. У меня был охотник, софт сильно изменился за полгода, и теперь больше 70% функционала стало новым, при этом часть функционала стала бесплатной, с несколькими платными фичами. Но Product Hunt не дал фичеринга, и поддержка так и не объяснила причины (вот как выглядит результат в сравнении с фичерингом и без фичеринга, если ничего не делать). Значит, что продукт попал в список из 200 ежедневных проектов, который можно увидеть только при нажатии на специальную кнопку, и это не дало никакого трафика и по этой причине от моей подготовки пришлось отказаться.
В общем, я продолжаю развивать продукт, писать о нем и обновлять Open Source, постепенно стремясь к цели в 1k звезд. Мой путь был не таким быстрым, не было «неделя и 3.5k звезд». Но этот процесс оказался гораздо более ценным — упорство, постоянное обновление и работа с сообществом. Старый материал забывается, и нужно создавать что-то новое, строить коллаборации и быть открытым к партнерствам или развивать contributes. Именно такой путь, помог мне действительно развиваться и идти вперед с проектом, несмотря на все трудности.
Автор: Wladradchenko