Ramle. Перший мій проект в кому зариєструвалося 1500+ користувачів.
Історія про те, як ми робили Ramle, додаток для пошуку друзів. Як отримали перший нормальний трафік, пробували розібратися з монетизацією, продуктовими метриками та мобілкою, а потім все таки закрили проект. Плюс трохи про вайбкодинг, холодний старт і речі, про які варто було подумати ще до початку розробки.
Предісторія
Рік назад, коли приїхав на навчання в нове місто, зіткнувся з проблемою, що тяжко знайти якесь коло спілкування. З одногрупниками так і не получилося покентуватися, зі знайомими з івентів також, тож задався питанням: а як взагалі знайти людину зі схожими інтересами? До того мав досвід в одному стартапі — класичний AI, який допомагає відслідковувати якісь роботи сейлів. Після цього стартапу я прям підсів на продуктову двіжуху. Не дуже хотів йти в якийсь аутсорс, більше хотілося воркати над продуктом або робити свій. Тому по всім канонам стартапу почав ресьорчити проблему та ринок. На початку взагалі не знайшов міжнародних конкурентів. Але, якщо трохи забігти наперед, пізніше випадково наткнувся на цілу пачку mobile-first стартапів. Вони погано ранжувалися по потрібних ключових словах, тому знайти їх получилось тільки після того, як наткнувся на один, а дальше вже через рекомендації знайшов інші.
На теренах України з +- популярних була Hvirtka. У проекту були сильні проблеми з UI/UX, але який-не-який попит був. Тому вирішив зробити свою версію додатку для пошуку друзів — без дейтінг-механік типу свайпів, алмазіків за лайки і всього класичного булшиту в стилі Tinder, Badoo та інших. Назвав цей проект Ramle.
Що означає Ramle?
Якщо коротко — нічого. На етапі брейншторму це була просто гра слів. Але коли почав гуглити назву, то чомусь на першому місці у видачі Google було ізраїльське місто Рамла.
Було дуже тяжко придумати хорошу назву, під яку ще й був би вільний нормальний домен. Був хороший варіант razom — на початку це взагалі була кодова назва додатку. Але .com був зайнятий фондом та при пошуку видавався як бренд, та й буквально всі слова, які нормально звучали й давали зрозуміти, що це додаток для пошуку друзів, уже були зайняті.
Тому дальше почав бавитися зі словом razom і в якийсь момент получилось згенерувати ramle. Домен на .com, звичайно, теж був зайнятий, але подумав: якщо ми все-таки робимо апку, то чому б просто не взяти ramle.app. По самому ключовому слову не видавало якогось великого бренду, тому назва стала майже ідеальним кандидатом. Ще був прикол з вимовою. Хтось читав назву як рамлі, а хтось як рамле. Задумувалося все-таки як "рамлі".
Бізнес-план, якого не було
Коли починалася розробка, ринок як такий не був нормально досліджений. І те, що не получилось знайти пачку прямих конкурентів, чомусь взагалі не викликало здивування. Все робилося на "чуйці", що воно має полетіти, як мінімум в Україні. Про залучення користувачів тоді взагалі особо не думав. Здавалося, що зроблю декілька постів у Threads і люди самі налетять. Вже під час спроб залучити перших користувачів зрозумів одне: вміння робити контент та продавати в еру вайбкодингу — це супер золотий скіл. Зробити продукт, який в теорії може бути людям корисний і за який вони навіть будуть готові платити, зараз не є якоюсь супер складною задачею. А от налити на нього трафік — це вже зовсім інша історія. Під "налити трафік" маю на увазі те, що коли ти робиш продукт, то більш-менш розумієш, як дойти з точки А в точку Б. А коли намагаєшся привести людей — це вже хз. Зайде пост чи ні, звідки як не з соц мереж брати трафік, тощо. Звичайно, це я говорю через призму девелопера, який до цього особо не мав навичок у просуванні проектів.
В додатках для пошуку друзів економіка працює по-різному. Одні роблять дуже скудний фріміум, який буквально з перших хвилин заставляє купити підписку, бо без неї додатком просто нестерпно користуватися. Наприклад, дають декілька запитів на дружбу в день, сильно обмежують взаємодію або напихають стільки реклами, що хочеться просто видалити апку. Інші монетизуються через всякі алмазіки, приблизно як класичні дейтінг додатки: можеш за додаткову оплату надіслати текст разом з лайком, зробити якийсь суперлайк з текстом і так далі. В мене бачення монетизації поступово мінялося вже під час розробки. Спочатку думав зробити повністю безплатний продукт і заробляти на платних комерційних івентах.
Дальше зрозумів, що до цього ще треба якось дойти, плюс було не до кінця зрозуміло, де шукати клієнтів, які захочуть за гроші розміщувати свої івенти на рамлі. Тому почав більше дивитися в сторону моделі Hvirtka, тільки менш анальної. Тобто залишити нормальний фріміум, яким реально можна користуватися, а дальше продавати за недорогу підписку, умовно за ціну 1–2 кавок, та якісь додаткові плюшки. Наприклад, подивитися, хто переглядав твій профіль, отримати якийсь бейдж, мати можливість надсилати більше запитів на дружбу і так далі. У безплатній версії в нас можна було надсилати до 40 запитів на день і мати до 20 активних запитів одночасно. Тобто якщо ти просто користуєшся ramle, тобі цього має вистачати. А якщо супер активно когось шукаєш або хочеш додаткові плюшки, тоді вже переходиш на підписку.
Все почалося з вебу


Команда була з двох людей: бекендер та фронтендер. В мене був досить скудний досвід розробки мобільних додатків, але ніколи не робив апку з нуля і не доводив її до продакшену. Тому вирішили стартанути саме з веб-версії.
На скрінах, які прикріпив, зображена вже версія 2.0. В нас не було ніякого готового дизайну чи шаблону, тому приходилося робити все з голови. Почалося все з генерації лендосів за допомогою Claude та Gemini. Після десятків генерацій нарешті попався хороший варіант, який уже почали дальше розвивати. Викинули пару секцій, згенерували ще декілька нових, переніс все з HTML + CSS на Next.js + Tailwind, і через декілька днів вийшов перший нормальний лендос. Дальше приступили до розробки самої платформи. Накидали базові API на Django та базовий UI/UX. Вирішили відмовитися від стандартного логіна через пошту + пароль в сторону google oauth, а в майбутньому ще й apple id, бо це тупо зручніше. Приблизно за місяць получилось накидати нормальну робочу версію, яку вже можна було показувати світу.
Але після релізу тиша. Ніхто не побіг реєструватися.
Мама, Я вайбкодер!
Весь додаток від фронта і мобілки до бекенду був написаний за допомогою Codex та Claude. Звичайно, були моменти, де приходилося правити код руками, але це буквально був 1%. Якість коду в такому додатку для мене не була супер критичною, але на диво получилось зробити +- нормальну архітектуру, особливо у вебі, де я шарив. А от там, де моя експертиза вже закінчувалася (але не повністю), почалися невеликі трабли. Наприклад, з мобілкою на Expo. Для мене це був невідомий фреймворк, хоча чимось він нагадував Next.js. Тому, одним словом, прийшлося потратити трохи більше токенів, ніж реально було необхідно.

Прикріпив скрін з профілю Codex, де видно кількість потрачених токенів за весь час. На першу версію Ramle пішло десь до 1.5М токенів. Найдовший стрік — 47 днів. Це якраз той час, коли я нонстоп пилив рамлі. По статистиці можна зрозуміти, що я більше віддаю перевагу Codex, але інколи приходилося використовувати Claude для правок, зв'язаних з дизайном.
Михайло (інший девелопер), який пилив бекенд, каже, що йому Claude для розробки заходить більше за інші моделі, тому в нас фактично весь бек був написаний на Claude. Точну кількість потрачених токенів на бек не відомо, але думаю, що їх було мінімум у два рази менше, ніж у Codex, який одночасно лупашив фронт та мобілку. В нас були стандартні підписки по $20, і їх хватало з головою. Під час розробки ще використовував різні плюшки для пришвидшення роботи та економії токенів, набиті вже в бою. Про них, думаю, окремо написати в наступних статтях.
Перший та останній хороший трафік
SEO — це, звичайно, круто, але починає плюс-мінус працювати приблизно через 3 місяці. Тому прийшлося згадувати, де індіхакери зазвичай постять свої проекти: Reddit, X, TikTok, Product Hunt, YouTube і так далі. Почав плотно пробувати вести соцмережі. Стартанув з класики: Threads та X. Зробив пости на X і Threads, не забув про класичний запуск на Product Hunt і... нічого не зайшло. Трафік магічно не полився, реєстрацій було нуль.
В якийсь момент, листаючи тг, чисто випадково наткнувся на пост про нас на dev.ua. Я був супер здивований, що хтось якимось невідомим чином взагалі про нас дізнався і написав у телеграм канал на 20к+ людей.Буквально за 2–3 дні прийшло більше 100 людей, які не просто нажали "Увійти з Google", а ще й реально пройшли онбординг. І так продовжувалося десь тиждень, по 100–200 нових людей в день з усієї України.В якийсь момент трафік доходив приблизно до 1к людей на день, і для мене це було просто дико. Я до того ніколи не бачив такого вживу в гугл аналітиці на свому проекті. Тому просто фігачив по 12+ годин кожен день на одному ентузіазмі.
Схема трафіку, наскільки я зрозумів, була проста. В dev.ua, походу, є боти, які парсять різні джерела, а на їх основі вони кліпають купу постів з інтервалом десь у 20 хвилин. Їхній пост підхватили інші медіа, які також написали про нас. А дальше це розійшлося ще по пачці сайтів і каналів, які й забезпечили нам хорошу кількість переходів.

Трафік, звичайно, був хороший. Але прибуток з нього = 0
Любимі продуктові метрики
Весь час розробки мені не давало спокою, що ми нормально не бачимо воронку користувача, від кліку на якийсь пост і проходження онбордингу до того, чи стає він взагалі активним юзером. А активність вже можна визначати на основі певних евентів, які користувач робить у додатку.
Якщо хтось не шарить, то вся аналітика по суті будується на евентах. Перегляд сторінки, закриття сторінки, нажаття на кнопку, якісь конкретні дії в додатку і так далі. Microsoft Clarity, наприклад, дозволяє подивитися запис сесії користувача і буквально побачити, як він поводить себе на сайті. Це реально супер цінно, бо можна зрозуміти, де в користувача щось не сходиться: де він думає, що елемент має нажиматися, а він не нажимається, де зависає або куди взагалі не доходить. Плюс можна дивитися heatmap і бачити, куди люди найчастіше клікають. Ще зрозумів, що якщо сталася якась проблема в користувача, тобі він про це не напише, або може взагалі поставити поганий відгук без зрозумілої причини. Якщо таке є, то має слогувати як тригер що щось в додатку не то.
Евенти зібрали, а дальше з них треба будувати воронки та графіки. І от це робити в Google Analytics без болі досить тяжко. Плюс були проблеми зі збором бекенд евентів. Тому вирішили додати ще PostHog. Виявилося, що для таких задач це в рази прикольніша платформа: можна збирати евенти як з фронта, так і з беку, будувати воронки, графіки, а їхній вбудований агент ще й може допомогти все це зібрати на базі вже існуючих евентів. Але є мінус, коли починає литися багато евентів, PostHog стає доволі дорогим. Google Analytics при цьому безплатний.
Жалію, що ми не побудували нормальні продуктові графіки ще на самому початку. Можна було би набагато раніше побачити, де саме в додатку вузьке горлишко і на якому етапі відвалюються люди.
Мобілка проти вебу

Це статистика за поточний рік, але в перший тиждень була практично та сама картина. Левова частина трафіку — телефони, і тільки трохи компів. Тому зразу взявся за нормальну адаптацію вебу під мобілки. В перший же тиждень почали обговорювати перспективу розробки мобільної апки, але спочатку хотіли подивитися, як люди дальше будуть себе вести. Плюс була ще проблема з технікою. Хто хоч раз розробляв мобілку, думаю, знає різницю між розробкою на Windows і на MacBook. Не знаю, з чим конкретно це пов'язано, але навіть на зарядженому компі емулятор може лагати, а на маці все працює дуже шустро. Тому досить швидко почали моніторити барахолки в пошуках мака на M1. Після того, як апарат вже був на руках, до першої версії мобілки пройшло чуть менше місяця. Але дальше була проблема, з якою бавився ще приблизно місяць — публікація в Google Play та App Store. Для Google Play треба було знайти 20 бетатестерів, які ганяють апку 14 днів, а для App Store — просто пройти анальну модерацію першої версії. Бетатестерів набили з наших користувачів, які погодилися допомогти, плюс сім'я. Всім супер вдячний. А от в App Store мені постійно повертали апку, бо щось не підпадало під правила Apple. І після кожного сабміту приходилося чекати ще десь по два дні.

Апка релізнулася, але чуда не сталося. Веб-аудиторія дуже тяжко переходила на мобілку, а нормально гнати новий трафік прямо на неї взагалі не получалося. Останнім варіантом було попробувати платний трафік через таргет. Ганяв meta ads на нашу основну аудиторію: Україна, Київ, 20–45 років, Android. Після декількох днів тесту по цифрах було видно, що одна людина, яка скачала додаток і пройшла онбординг, обходиться приблизно в $1.4. Звичайно, тест йшов тільки десь 5 днів і на маленькому бюджеті. Можна представити, що алгоритм дальше оптимізується, плюс покращаться інші фактори, і такого користувача можна було би довести десь до $1–0.8. Але це все одно забагато. Тут прикол у тому, що ці $1 взагалі не гарантують, що людина затримається надовго. Вона може буквально через декілька днів лівнути, бо мало контенту, мало людей поруч або просто не зайшов сам формат. Тому потрібен хороший бюджет, або просто якась маркетингова чуйка щоб просто розкрутити цей механізм і набрати критичну масу людей. Класична проблема холодного старту, про яку я нормально дізнався вже десь на середині всієї історії.
Закриття Ramle
Це вже не той час, коли можна зробити одну розсилку і получити по 1к юзерів за день. Ще замітив таку тенденцію серед інвесторів, що левова частка взагалі не хоче інвестувати в соціальні додатки. І їх можна зрозуміти, це реально геморой довести до прибутку, ще й так, щоб по дорозі проект просто не здох.
Створювати стартап, коли в команді два технічні спеціалісти, теж виявилося не найліпшою комбінацією. Я пробував брати на себе роль сейла, маркетолога і все інше, що було потрібно, але, як можна зрозуміти з цієї історії, не дуже добре получилось виконувати всі ці ролі одночасно.
Можливо, закривати Ramle взагалі не було сенсу. Кост підтримки був десь $16 на місяць — хостинг + Google Workspace. Тобто проект міг ще довго просто собі жити. Але тягнути за собою мертвий груз, з яким я вже не розумів, що робити дальше, теж не дуже хотілося. Тому в якийсь момент вирішили просто його закрити.