Содержание всех статей

Содержание

О чем пойдет речь?

Примерно 11 месяцев назад я начал разрабатывать пет-проект - Telegram чат для сайта. С тех пор и до сегодняшнего дня занимаюсь его разработкой и продвижением самостоятельно. У кого-то хобби open source и сбор звезд на GitHub, у меня хобби в виде своего маленького IT продукта. Правда занимаюсь им в свободное от основной работы время, которого мало.

Недавно проект перешагнул за 100 платящих пользователей в месяц и 100 000 рублей суммарной выручки (именно выручки, всё возвращается в проект, в карман ничего пока не положил). Вложения пока не отбились, но плавно к этому иду.

Хочу рассказать тем, кто тоже работает над своими проектами, как за год я пришел к текущим показателям (что было нелегко). Попробовал структурировать свои мысли, вышло довольного много текста. Текст разбил на статьи, содержание будет в каждой статье.

Кто я?

Senior Full-Stack разработчик (NodeJS + React).

5+ лет коммерческого опыта (работал над приложениями для автоматизации бизнес-процессов, над CRM системами и над e-сommerce решениями).

8+ лет в разработке (начинал с Java, пробовал Android, потом ушел в веб; сейчас стек NodeJS, React и много других популярных названий).

Свободное на проект время: ~10-15 часов в неделю, часто меньше.

Про 8 лет в разработке и 4PDA

Оказалось, что первый мой “опубликованный” проект как раз был выложен 8 лет назад на сайте 4PDA. Это было консольное Android приложение, написанное на Pascal (причем написанное на телефоне в мобильной IDE(!)).

Занималось приложение настройкой эмулятора Windows, чтобы запускать разные древние системы по типу Windows 95 на телефоне. Вот ссылка - https://4pda.to/forum/index.php?showtopic=666450

Почти ностальгическую слезу пустил.

Уточнение. Я сторонник мнения, что Full-Stack разработчик не особо может считаться Senior’ом из-за слишком большого количества технологий.

В моем понимании, Senior Full-Stack - это Middle во всём и сразу (от БД с Docker’ом до оптимизации сайта под Google Page Speed и настройки CSS'a). С серьезным опытом, знанием своих технологий и, в случае недостатка знаний, пониманием, где искать дальше решение для качественного выполнения задачи.

Что за проект?

Telegram Feedback - это чат для сайта. Посетитель пишет в чат на сайте, его сообщения приходят в бот, группу или Telegram канал (смотря куда удобнее). Владелец сайта отвечает в самом Telegram, ответ возвращается пользователю в чат на сайте.

Собственно, чат похож на Jivo-чат (тот чат, который выпрыгивает всё время справа внизу экрана, вы его точно видели, хе-хе). Но немного иначе. Jivo умеет группировать сообщения и с сайта, и из WhatsApp, и из Telegram, и из других каналов связи. У меня же просто чат. Специально не усложняю, а решаю только одну задачу для пользователя.

P.S. Я стараюсь яростно агитировать пользователей не включать “выпрыгивание чата”. Всегда раздражало, поэтому по умолчанию у моего чата это выключено.

Текущие финансовые показатели

На момент написания статьи у меня 105 платящих пользователей (81 ежемесячная подписка, остальные оплачивают помесячно вручную). Количество пользователей с тестовым периодом составляет ~20% относительно платящих пользователей.

Статистика в панели администратора
Статистика в панели администратора

Итого, выручка:

(290 рублей - 5% (комиссия платежной системы) - 6% (налог ИП)) * 105 (клиентов) = 258 * 105 = 27 090 будет в следующем месяце.

Платежи появились только в сентябре. До этого виджет был бесплатный, так как стояла задача понять, какой именно продукт будет удобен пользователям, а не начать зарабатывать.

...хотя платежи добавил, а зарабатывать не начал...

Пользователи бесплатно пользовались, я платно их изучал и дорабатывал продукт. Платно, потому что пользователи находились через рекламу, а реклама не бесплатная.

Вот показатели платежей через CloudPayments с сентября:

Занимательный факт №1: на момент подключения оплаты в сентябре у меня было ~100 активных пользователей. После появления оплаты осталось 30 пользователей.

Вывод №1: активные пользователи и активные платящие пользователи - это две разные группы пользователей с разными конверсиями (что логично).

Занимательный факт №2: пока что вся выручка уходит обратно в проект на покупку рекламы и на развитие SEO. Ни копейки в карман я не положил, а наоборот, на каждую копейку выручки я докладывал не одну из своего кармана в течение года.

Вывод №2: прежде, чем проект станет выгодным или хотя бы не будет требовать активных вложений, должно пройти немало времени. И пока продукт станет удобным, и пока база клиентов накопится. Это и близко не один год. Не рассчитывайте на быстрый доход при создании пет-проекта, ставьте перед собой другие цели.

Системы платежей и чеки

Тут всё просто.

Для приема платежей из РФ использую Cloud Payments (API).

Для приема международных использую Enot Pay (API).

Для отправки чеков (кто не знает, их по закону обязательно отправлять для каждого платежа) использую Cloud Kassir (от Cloud Payments, API).

Откуда приходят пользователи?

Для этого у меня есть наглядная картинка:

Диаграмма пользователей по источникам привлечения
Диаграмма пользователей по источникам привлечения

В следующих статьях дам пояснение, как собирается эта статистика.

Архитектура и стек технологий

Чат для сайта, по факту, система из нескольких компонентов, которая включает:

  • Сайт и личный кабинет пользователя (с требованием к хорошему SEO)

    Технологии: TypeScript, NextJS (серверный рендеринг), React, кластерный режим для NextJS, Bootstrap 4

  • Виджет для сайта (js скрипт, который устанавливают на сайты пользователей)

    Технологии: TypeScript, PreactJS (весит ~3Kb, обычный React слишком жирный для виджета), SocketIO

  • Админка с аналитикой и менеджментом пользователей (исторически сложилось, что это отдельный фронт)

    Технологии: TypeScript, React, Bootstrap 4

  • Серверная часть с API и сокетами

    Технологии: TypeScript, NodeJS + NestJS, SocketIO, PM2 (менеджмент процессов), Jest (unit тесты) + Supertest (E2E тесты)

  • База данных

    PostgreSQL 14

  • Брокер сообщений и key-value хранилище:

    Redis

  • Прокси-сервер (чтобы собрать все компоненты системы выше в единое целое)

    Nginx (классика)

  • Контейнеры

    Docker + Docker Compose

Дополнительно:

  • Сервер

    От FirstVDS (не реклама). Мощные и дешевые сервера.

    Ubuntu 20.04 + XFCE (совсем неудобно делать запросы через консоль без UI, с PgAdmin удобнее, поэтому поставил графическую оболочку спустя полгода развития проекта).

    В лимит вертикального масштабирования по производительности я упрусь нескоро. Скорее всего, ресурс памяти под БД исчерпается быстрее, чем пропускная способность канала или производительность сервера (лимит для текущего VDS - Xeon Gold 5115 x 128 CPU и RAM DDR4 512 Гб).

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

  • DDOS-защита

    DDOS-Guard. Недорого, удобно. В дополнение к глобальной защите, есть “локальная” защита на уровне Nginx и на уровне API. Срабатывает чуть быстрее в некритичных случаях.

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

  • Каптча

    Яндекс Каптча. Под мои задачи сейчас бесплатно, потом станет недорого.

  • Резервные копии

    Делаются несколько раз в день стандартными средствами от FirstVDS + pg_dump + zip.

    Я провожу проверку восстановления проекта из резервной копии минимум раз в месяц. В случае какой-либо критичной проблемы проект пропадёт минимум на час, максимум на день (в случае, если нужно устранять уязвимость).

Администраторы делятся на две категории: те, кто еще не делает бекапы и те, кто уже делает.

(c) Народная мудрость

Любой сервер падает. Главное поднять его, пока никто не заметил.

(с) Народная мудрость

Причем тут БДСМ студия?

Еще один занимательный факт.

Когда я запустил первую версию виджета и дал рекламу через Яндекс.Директ, первым пользователем была БДСМ студия в Иркутске ????. Ради интереса нашел их сайт в базе - до сих пор пользуются. Вначале даже попросили сделать открытие виджета по JavaScript событию.

Топ-3 странных сайта составлю в следующей статье. Интересные были, БДСМ студия не самое нестандартное. Я давно отключил уведомления для каждого подключенного сайта, так что рейтинг будет только за первые несколько месяцев работы виджета.

Предыдущий опыт

До Telegram Feedback у меня были попытки запускать свои IT пет-проекты с намеком на платящих пользователей. Правда, проект безуспешные и я давно их закрыл.

Woodle Auto - CRM система и система онлайн записи для автосервисов. Разрабатывал года полтора (долго, так как времени свободного за рамками основной работы было не так много).

Вложил довольно много за этот период, а заработал… 1 450 рублей. Зато сколько опыта на тему исследования рынка, пользователей и маркетинга.

Woodle Search - разрабатывал полтора месяца. Вложил ~60 000 рублей, заработал ~5 000 рублей. Потом случилось 24 февраля, Google Maps ушли из РФ и на проект я забил. Да и откровенно не до него было тогда. Тогда-то мысли в кучу собрать, а не о пет-проектах думать.

Заключение

Это был очень краткий обзор того, что есть сейчас. Дальше расскажу, как появилась идея и как выглядела первая версия проекта.

Комментарии (7)


  1. E_BEREZIN
    00.00.0000 00:00

    Почему не хотите написать статью на Тильде, чтобы быть максимально близко к своим потенциальным клиентам, как это делает chatra, пример https://tilda.education/articles-7-tips-online-chat

    Или сразу предложить вашу партнёрку Тильде и ВордПрессу...

    p.s.: ++ за разработку


    1. RostislavDugin Автор
      00.00.0000 00:00
      +2

      Да как не хочу... Еще как хочу.

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

      Вот решил пока статьи написать. В четвертой части будет много технических деталей и схема архитектуры в текущий момент (часа два рисовал).

      Выложу через несколько дней, когда допишу.

      Когда закончу со статьями, еще раз напишу Тильде.


      1. E_BEREZIN
        00.00.0000 00:00
        +1

        С другой стороны, сегодня вы работаете над пет-проектом, а завтра передумаете. Чат отвалится, репутация у Тильды пострадает, клиенты негатив словят...


        1. RostislavDugin Автор
          00.00.0000 00:00
          +1

          Хм...

          С этой стороны их риски тоже понятны, не поспорю. На их месте я бы подождал ощутимых цифр прибыли у проекта. Возможно через годик-другой у меня они будут.

          C третьей стороны, писать и пробовать стучаться в Tilda нужно до получения отказа. Молчание ведь не ответ.

          Я ведь знаю, что проект бросать не собираюсь :), пусть и в таком "спокойном" режиме. На самом деле это оказался интересный опыт. Вроде и не работаешь много, а так, по мере возможностей. Проект растет потихоньку. Для меня это оказалось более интересным хобби, чем open source с GitHub'ом.


  1. getmancar
    00.00.0000 00:00

    Integram умер, да здравствует Intergram! =)


  1. 4uku
    00.00.0000 00:00
    +1

    Что-то "пет-IT проект" глаза режет. Может лучше "IT пет-проект"?


    1. RostislavDugin Автор
      00.00.0000 00:00

      Поправил