Упс! Не вдала спроба:(
Будь ласка, спробуйте ще раз.

SurgeUp — Як ми робимо стартап для YouTube-креаторів.

0
5 хвилин читання
decoration

Як ми робимо стартап для YouTube-креаторів і чому відмовились від ботів

В Україні зараз понад 100 тисяч активних YouTube-каналів. Більшість із

них — маленькі творці зі 100-5000 підписників, які роками мріють пробитися

у рекомендації. Стандартний шлях — створювати якісний контент і чекати

органічного росту. Це працює, але повільно: середньому каналу потрібно

6-18 місяців до перших 1000 підписників.

Альтернатива яку пропонує ринок — накрутка ботів. Дешева, швидка, і

вбиває канал. YouTube алгоритм за 24-48 годин виявляє ботів, видаляє

підписників, і канал зникає з рекомендацій назавжди.

Третій шлях — взаємодопомога між креаторами. Це і є SurgeUp.

## Як працює платформа

Ідея проста: ти заробляєш бали виконуючи завдання інших креаторів —

підписуєшся, лайкаєш, коментуєш їхні відео. Витрачаєш ці бали на

просування свого каналу — отримуєш реальні підписки, лайки, коментарі

від інших YouTube-творців.

Економічно це працює так: креатор платить 15 балів за підписку, виконавець

отримує 12. Різниця — комісія системи 20%. Старт безкоштовний — 500 балів

автоматично нараховуються при реєстрації, цього вистачає на 33 підписки

або 50 лайків.

Алгоритмічно — це органічний ріст, а не накрутка. YouTube бачить реальних

користувачів з активних каналів, які генерують справжній watch time, лайки,

коментарі. Канал не отримує штрафу і часто потрапляє в рекомендації.

## Технічна архітектура

— Frontend: Flutter (Web + Android з єдиного codebase)

— Backend: NestJS, PostgreSQL, TypeORM

— Hosting: Railway (auto-deploy from GitHub master)

— Auth: Google OAuth (тільки для підключення YouTube; основна реєстрація

через email + bcrypt)

Підписуйтеся на наші соцмережі

— Платежі: Stripe Live (Apple Pay / Google Pay / cards)

— Аналітика: GA4, Google Search Console

YouTube інтеграція — виключно через офіційний YouTube Data API v3.

Підключення каналу через OAuth 2.0 з мінімально необхідними scopes

(read-only для базової інформації каналу). Жодних паролів ми не зберігаємо,

жодних автоматизацій що порушують YouTube TOS не використовуємо.

## Найболючіші уроки за 4 місяці

### 1. Google OAuth Verification — це окремий проєкт

Якщо твій додаток працює з YouTube/Gmail/Drive scopes — Google вимагає

verification. Процес довгий (2-3 тижні мінімум), 6-пунктовий, і помилки

у будь-якому з них = повторний review.

Нас зафлажили на пункті «Branding guidelines»: App name «SurgeUp» на

OAuth consent screen не збігався з контентом нашого homepage. Хоча на

сайті всюди було «SurgeUp» — як логотип-картинка і в `<title>` тегу.

Але reviewer шукає **plain text** на сторінці. Через CSS background

он бачить тільки HTML-DOM.

Виправили: додали wordmark «SurgeUp» поряд з логотипом у header, hero

eyebrow над H1, і в footer. Re-submit зробили через Reply у треді

Trust & Safety (не Save у Console — це окрема пастка).

### 2. SEO з нуля — місяці, не тижні

Новий домен потрапляє в Google Search Console одразу, але Google

починає реально ранжувати тільки через 4-12 тижнів. Backlinks мають

найбільший вплив, але їх не купити (тобто можна, але це знов про ботів).

Що ми зробили за один день:

— Title + meta description з ключовими словами

— JSON-LD: Organization, SoftwareApplication, FAQPage (валідовано через

Google Rich Results Test)

— Sitemap.xml з усіма публічними URL + robots.txt

— Web manifest + повний favicon-set (16/32/96/192/512 + apple-touch)

— Header/Footer уніфіковано на всіх сторінках з wordmark

— PageSpeed: 91 mobile, 97 desktop

Чекаємо органічного трафіку. Перший Google traffic зазвичай починається

з long-tail запитів за 6-8 тижнів.

### 3. NestJS + закомічений `dist/` — антипатерн

Це наш найдорожчий fuckup. Початкова конфігурація проєкту мала

`npm run build = echo «skipped»` — TypeScript компіляція виключена,

а скомпільовані `dist/*.js` закомічені у git. Railway просто запускав

`node dist/main`.

Це створює clear-cut проблему: коли треба було виправити 32 TS-помилки

(legacy типізаційні неточності), Claude Code виправив `src/*.ts`, але

не перекомпілював `dist/`. Тестів локально не було. Push → Railway

запускає старий dist → працює як раніше → «ok, виправлено».

А наступний крок (зміни в `User entity`) Claude Code випадково додав

у dist, і там з'явився `design:type = Object` для `youtubeUrl`, що

unsupported у Postgres. Прод впав повністю з

`DataTypeNotSupportedError`.

Rollback на попередній deploy врятував. Потім великий refactor:

додали `npm run build` що реально компілює TypeScript, і convention

що entity-файли не міняються без локального runtime-тесту.

## Що зараз

Платформа в production у Ukraine. ~50 активних користувачів за перші

тижні. Перші платежі у live Stripe. Telegram-канал @surgeup_app з

постами про маркетинг, безпеку, ріст YouTube.

Чекаємо завершення Google OAuth verification (2-5 робочих днів), тоді

зможемо повноцінно онбордити нових користувачів без warning-screen

«Unverified app».

Якщо ти YouTube-креатор з UA-аудиторією — спробуй: surgeup.app. Якщо

ти будуєш peer-to-peer платформу — пиши, обмінюємось досвідом.

Якщо ви хочете поділитися з читачами SPEKA власним досвідом, розповісти свою історію чи опублікувати колонку на важливу для вас тему, долучайтеся. Відтепер ви можете зареєструватися на сайті SPEKA і самостійно опублікувати свій пост.
0
Icon 0

Підписуйтеся на наші соцмережі