Что это
Инди-хакинг — это создание небольших проектов без вложений, чтобы зарабатывать напрямую, без инвесторов.
Самый известный пример — Питер Левелс, который сделал миллионы на маленьких продуктах. У него подход творческий и немного размытый: запуск за месяц, продукт должен быть простым и полезным.
В русскоязычном сообществе есть ребята с более практичным подходом — Короче, капитан.
? План такой:
— Делаем только расширения для Chrome. Гугл сам проверяет и продвигает расширения в своём магазине, а значит, доверие к ним выше, чем к сайтам. Соответственно, в выдаче они тоже появляются чаще.
К тому же конкуренция ниже: расширений ~110k, а мобильных приложений в Google Play уже под 2kk.
— Берём существующее расширение с >10k пользователей и выделяем из него только одну функцию. Главное — чтобы она была простой и понятной, но реально нужной. Если аналогов с одной функцией уже хватает — пробуем улучшить UX: меньше кликов, удобные настройки по умолчанию и т.п.
— Разработка не должна быть сложной. Идеально, если расширение можно собрать максимум за месяц, занимаясь вечерами.
— Дальше думаем, какой поисковый запрос пользователь введёт. Например, функция — скриншот всей страницы, тогда запрос будет "Full page screenshot". Проверяем в Google Trends и сравниваем с запросами "ad blocker" (мегапопулярный) и "site blocker" (среднепопулярный). Наш запрос должен быть хотя бы на уровне site blocker.

— Пишем быстро, без перфекционизма и чистого кода. Возможно, проект завтра выкинем. Если взлетит — потом отрефакторим.
— Тестируем как реальный пользователь, чтобы поймать не только баги, но и понять, удобно ли вообще пользоваться.
— Запускаем. Если зашло — дорабатываем, если нет — ищем новую идею.
? Более подробно про схему "Короче, капитан" рассказывают на интенсиве
Мое расширение
Моя идея была простой: расширение, которое скачивает все картинки с сайта в один клик.
По запросу "images downloader" в выдаче было всего два расширения, и одно вообще не работало. В Google Trends запрос выглядел перспективно.


? Так как фронт я писать особо не умею, целью было просто набить руку. Монетизацию и прочие нюансы я тогда не учитывал.
Весь процесс — от идеи до загрузки в Chrome Store — занял около 4 месяцев, так как я долго выбирал инструменты, разбирался с ними и параллельно был загружен другими делами.
В итоге расширение вышло, но его не установил вообще никто. В выдаче его нет, а найти вручную можно только очень долго листая.

? Я понял, что важно тщательно выбирать идею и запускаться максимально быстро, чтобы проверить, нужен ли продукт вообще.
Стек
? Так как я из кровавого джава-энтерпрайза, мне хотелось меньше абстракций, магии и зависимостей.
Исходя из этого, я выбрал такой стек:
— TypeScript — тут без вариантов. Хотелось бы писать на Go или Rust, но они совсем не подходили.
— Bun — бандлер + пакетный менеджер. Быстрый, модный, минималистичный. Идеально.
— Snabbdom — маленькое модульное виртуальное DOM-дерево. Его, например, использует Lichess — огромная шахматная платформа, которую в основном поддерживает один разработчик-минималист. Я мог бы обойтись и без виртуального дерева, но на будущее решил взять.
— Pico CSS — здесь я как раз хотел немного магии. Красивый UI делать самому долго, а Pico отлично подошёл как готовое drop-in решение.
— VSCode — взял с минимумом плагинов. В отличие от тяжёлой IntelliJ IDEA, которая ломается от переименования папки, здесь всё было под контролем. Более того, проект я собирал не через VSCode, а только через терминал.
Такой стек максимально сократил количество абстракций. Если что-то ломалось — проблема была точно в моём коде, а не в нюансах работы библиотек.
? И, конечно, главный инструмент — GitHub Copilot.
Сначала я боялся, что если он будет писать код за меня, я ничего не пойму. Но благодаря минималистичному стеку и простой задаче, код оставался прозрачным. В итоге копайлот написал процентов 30–40.
? Главный вывод — чем проще инструменты и быстрее запуск, тем лучше. И даже проваленный проект даёт хороший опыт.
?? Джуниор