Фаундери питають мене «скільки коштує MVP?», і я даю чесну відповідь: залежить. Потім просять діапазон, я кажу €8K–€25K для solo-розробника, і вони ввічливо кивають, досі не розуміючи, за що платять.
Цей пост — та версія, яку я хотів би прочитати, коли був по інший бік. Реальний проєкт, анонімізований, але без змін в обсязі та годинах. Кожна стаття витрат, кожен блок годин, кожне рішення, що зсунуло ціну вгору або вниз.
Загалом: €12,200. Ось куди пішло кожне євро.
Проєкт
B2B SaaS для логістичного стартапу. Три ролі користувачів (адмін, диспетчер, водій), один основний воркфлоу (призначення та трекінг завдань), інтеграції з Google Maps і платіжним провайдером. Тільки веб-застосунок, без мобілки.
Таймлайн: 8 тижнів. Фіксований скоуп, білінг по майлстоунах.
Розклад
| Фаза | Години | Вартість | % від загальної |
|---|---|---|---|
| Діскавері та специфікація | 12 | €960 | 8% |
| Дизайн-система + UI-кіт | 16 | €1,280 | 10% |
| Авторизація + управління користувачами | 14 | €1,120 | 9% |
| Основний воркфлоу (CRUD + стейт-машина) | 28 | €2,240 | 18% |
| Інтеграція з картами | 10 | €800 | 7% |
| Платіжна інтеграція | 12 | €960 | 8% |
| Дашборд + аналітика | 14 | €1,120 | 9% |
| Email-сповіщення | 6 | €480 | 4% |
| Деплой + CI/CD | 6 | €480 | 4% |
| Тестування + QA | 16 | €1,280 | 10% |
| Підготовка до запуску + передача | 8 | €640 | 5% |
| Буфер (використано на зміни скоупу) | 10 | €800 | 7% |
| Загалом | 152 | €12,160 | ~100% |
Ефективна ставка: €80/годину. Контракт був на фіксовані майлстоуни, не погодинний — але години — це те, як я скоупив внутрішньо.
Розберу, що означає кожний рядок.
Фаза за фазою
Діскавері та специфікація (12г, €960)
Перед написанням коду я пишу специфікацію. Не 40-сторінковий документ — бриф на 3–5 сторінок, що покриває:
- Три ключові флоу користувачів, описані як покрокові історії
- Нарис моделі даних (які сутності існують, як пов'язані)
- Список інтеграцій із посиланнями на документацію API
- Що явно поза скоупом
- Критерій успіху: «MVP готовий, коли [одне речення]»
Ця фаза зазвичай економить 20–30 годин далі по проєкту. Кожна неоднозначність, виловлена тут, — це зміна скоупу, якої вдалося уникнути пізніше. Специфікація стає додатком до контракту — обидві сторони погоджуються, що означає «готово», до того, як написано перший рядок коду.
Дизайн-система + UI-кіт (16г, €1,280)
Не повний дизайн-хендоф із Figma. Функціональна дизайн-система: кольорові токени, типографічна шкала, відступи, бібліотека компонентів на Tailwind. Достатньо, щоб кожен екран виглядав консистентно без дизайнера на кожен екран.
Для цього проєкту: темний сайдбар-лейаут, таблиці даних із сортованими колонками, патерни форм, модальні вікна, тост-сповіщення. Я збираю це як перевикористовувані React-компоненти, а потім складаю з них екрани.
Чому 16 годин? Бо якщо зекономити тут — кожен наступний екран забиратиме на 30% довше. Дизайн-система — це інвестиція, що окупається до 3-го тижня.
Авторизація + управління користувачами (14г, €1,120)
Три ролі, email/пароль авторизація, скидання пароля, управління сесіями. Я використав NextAuth (тепер Auth.js) з Postgres-адаптером.
14 годин звучить як багато для «просто логіну». Ось що реально всередині:
- Реєстрація з верифікацією email
- Логін із rate limiting
- Скидання пароля з експірацією токена
- Рольовий middleware (адмін бачить усе, диспетчер — свою зону, водій — свої завдання)
- Логіка оновлення сесії
- Сторінка налаштувань акаунту (зміна пароля, оновлення профілю)
Авторизація — одна з тих речей, що займають 4 години, якщо пропустити крайні випадки, і 14 годин, якщо їх обробити. Пропустити крайні випадки — означає отримати тікети в підтримку на 2-му тижні.
Основний воркфлоу (28г, €2,240)
Найбільший рядок. Це те, що застосунок реально робить — призначення та трекінг завдань.
Диспетчер створює завдання (точка забору, точка доставки, часове вікно, деталі вантажу). Система знаходить доступних водіїв у зоні. Диспетчер призначає. Водій приймає або відхиляє на своєму дашборді. Завдання проходить через стани: створено → призначено → прийнято → в роботі → завершено.
28 годин, бо:
- Стейт-машина з 6 станами та 8 переходами, кожен із правилами валідації
- CRUD для завдань, водіїв, зон
- Оновлення статусу в реальному часі (polling, не WebSocket — рішення рівня MVP)
- Фільтрація/пошук/сортування у списку завдань диспетчера
- Масові операції (призначити 10 завдань за раз)
- Крайні випадки: що відбувається, якщо водій відхиляє? Йде в офлайн посеред завдання? Диспетчер скасовує?
Тут більшість MVP або перебудовують (додаючи фічі, про які ніхто не просив), або недобудовують (пропускаючи крайні випадки, що зламаються в перший тиждень). Специфікація з Фази 1 — те, що тримає це у фокусі.
Інтеграція з картами (10г, €800)
Google Maps API для двох речей: показ локацій водіїв на карті та розрахунок передбачуваного часу доставки.
10 годин, бо API добре задокументований, а крайні випадки — ні:
- Обмеження API-ключів (HTTP referrer для фронтенду, IP для бекенду)
- Фолбеки геокодінгу, коли адреси неоднозначні
- Rate limiting на безкоштовному тарифі
- Відображення 50+ маркерів без вбивства продуктивності на мобілці (кластеризація)
Платіжна інтеграція (12г, €960)
Stripe для щомісячного виставлення рахунків диспетчерам на основі обсягу завдань.
Не простий чекаут — це білінг за споживанням:
- Metered billing: підрахунок завершених завдань за білінг-період
- Stripe webhooks для підтвердження оплати та обробки відмов
- Генерація PDF-рахунків
- Логіка grace period (що відбувається, коли платіж не проходить?)
- Перемикання Stripe тест-мод → продакшн (звучить тривіально, це не так)
Дашборд + аналітика (14г, €1,120)
Адмінський дашборд: завдання за день/тиждень/місяць, відсоток завершення, середній час доставки, виручка по водію, теплова карта зон.
Усі графіки рендеряться на сервері (без клієнтської бібліотеки візуалізації). Агрегація даних працює в Postgres через materialized views, що оновлюються кожні 15 хвилин. Це тримає дашборд швидким без складності реального часу.
Email-сповіщення (6г, €480)
Транзакційні листи через Resend: завдання призначено, завдання завершено, платіж отримано, скидання пароля. Кожен лист має plain-text фолбек і протестований у Gmail, Outlook та Apple Mail.
6 годин, бо HTML для email застряг у 1999-му, і кожен клієнт рендерить по-своєму.
Деплой + CI/CD (6г, €480)
Vercel для Next.js-застосунку. Supabase для Postgres. GitHub Actions для CI (lint, typecheck, тести на кожен PR). Управління змінними оточення для staging vs production.
6 годин, бо більша частина — шаблонна робота, яку я вже робив. Час іде на конфігурацію під конкретний проєкт, не на розгортання інфраструктури.
Тестування + QA (16г, €1,280)
Інтеграційні тести для основного воркфлоу (створення завдання → призначення → завершення). E2E-тести для авторизації. Ручний QA по трьох ролях на десктопі та мобілці.
16 годин = 10% від загального. Я не випускаю нижче 10%. Тести ловлять регресії, коли я роблю зміни на 6-му тижні, що ламають щось із 2-го.
Підготовка до запуску + передача (8г, €640)
- Налаштування продакшн-оточення
- DNS-конфігурація
- SSL-сертифікати
- Налаштування моніторингу (Sentry)
- Документація: як деплоїти, як додати нового водія, як керувати білінгом
- 1-годинний воркстру з фаундером
Буфер (10г, €800)
Кожен проєкт має зміни скоупу. Фаундер розуміє посеред розробки, що водіям потрібно завантаження фото підтвердження доставки. Або що в дашборді потрібен експорт у CSV.
Я закладаю 7–10% буфера. Цей проєкт використав 10 годин буфера на: фото підтвердження доставки (4г), CSV-експорт (3г) та шорткат «дублювати завдання», про який попросив диспетчер (3г).
Що рухає ціну
Три важелі, що зсувають аналогічний проєкт від €8K до €25K:
Інтеграції. У цьому проєкті було 2 (Maps + Stripe). Кожна інтеграція додає 8–15 годин. Проєкт із 5 інтеграціями (платежі + карти + email + SMS + синхронізація календаря) легко додає €3K–€5K.
Ролі та права. У цьому проєкті 3 ролі з простими правилами. Проєкт із 6 ролями, вкладеними правами та аудит-логуванням додає 20–30 годин лише до авторизації.
Вимоги реального часу. Цей проєкт використовував polling (просто, дешево). WebSocket для живого трекінгу водіїв, живої дошки завдань та пуш-сповіщень додав би 30–40 годин. Я зібрав це для E7 — реально, але не дешево для MVP.
Що б я урізав, щоб вкластися в €8K
Якби фаундер сказав «у мене €8K, а не €12K» — ось що я б вивів зі скоупу:
- Аналітичний дашборд → замінити простим Postgres-запитом, який фаундер запускає вручну. Економія 14г.
- Платіжна інтеграція → виставляти рахунки вручну перші 3 місяці, додати Stripe, коли обсяг білінгу це виправдає. Економія 12г.
- Буфер → залишити, але менше. 5г замість 10г.
- Email-сповіщення → надсилати з особистої адреси через Resend, без брендованих шаблонів. Економія 3г.
Це ~34 години / €2,700 економії. Застосунок все ще працює, все ще вирішує ключову проблему, але фаундер робить більше вручну в перші місяці.
Це реальний трейдоф MVP: не «які фічі пропустити?», а «яку роботу я готовий робити вручну, поки автоматизація не окупить себе?»
Висновок для фаундерів
Коли ви отримуєте пропозицію на €12K або €15K або €20K — просіть розклад. Не «фронтенд, бекенд, тестування» — це ні про що не каже. Просіть пофазові години. Питайте, що в буфері. Питайте, що уріжуть, якщо бюджет на 20% нижчий.
Розробник, який може відповісти на ці запитання, реально думав над вашим проєктом. Той, хто не може — оцінює на відчуттях.
Якщо ви хочете такий рівень розкладу для свого проєкту — конкретні фази, конкретні години, конкретні трейдофи — запишіться на скоупінг-дзвінок. Я скажу, скільки це коштує, і що я б урізав, щоб вкластися у ваш бюджет.