Розробка вебзастосунків, SaaS і MVP

Dardo створює вебзастосунки, SaaS-продукти та MVP для засновників і компаній, яким потрібне програмне забезпечення, куди клієнти входять, за яке платять і на яке покладаються, а не маркетинговий сайт. Ми визначаємо обсяг першої версії навколо одного ключового сценарію, а потім проєктуємо, розробляємо, тестуємо й запускаємо її з акаунтами, правами доступу, платежами, адмінпанеллю та аналітикою — на коді й акаунтах, які належать вам.

Напишіть нам у WhatsApp
Dardo / Редакційна ілюстрація
На цій сторінці

Що входить у проєкт вебзастосунку чи MVP

Ми формуємо співпрацю під ваш конкретний бриф. У пропозиції вказано, які з цих результатів входять у проєкт, хто надає вихідні матеріали та як приймається кожен результат.

  • Обсяг першої версії: ключовий сценарій, ролі та те, що відкладаємо
  • Ключові екрани зі станами порожнього екрана, завантаження та помилки
  • Модель даних, серверні правила доступу та тести, які намагаються їх зламати
  • Акаунти, ролі та запрошення до команди
  • Платежі або підписки, підтверджені перевіреними зворотними викликами від провайдера
  • Адмінпанель, події продуктової аналітики та моніторинг помилок
  • Розгортання, документація та передача репозиторію й акаунтів

З чого почати: вебзастосунок, сайт чи дизайн продукту?

Обирайте цей варіант, якщо клієнтам або співробітникам потрібно входити в продукт і виконувати там роботу: купувати, бронювати, надсилати, погоджувати чи керувати чимось. Якщо вам потрібен сайт, що пояснює й продає вашу пропозицію, краще підійде Web Development. Якщо сценарій ще не визначено, почніть із Product Design і розробляйте, коли ключові екрани протестують користувачі.

Як створюється перша версія

Ми починаємо з етапу визначення обсягу: користувачі та ролі, єдиний сценарій, який має виконувати перша версія, дані, що створює кожен крок, і рішення, які впливають на вартість, зокрема платежі, інтеграції та права доступу. Результат — письмове визначення обсягу, клікабельні ключові екрани та план релізу, де названо, що відкладається.

Далі ми розробляємо короткими циклами на тестовому середовищі, яким ви можете користуватися. Перша віха — тонкий зріз ключового сценарію, що працює від початку до кінця зі справжнім входом і справжніми правилами даних, ще до того, як будуть заповнені решта екранів. Запуск охоплює моніторинг у робочому середовищі, шлях відкату та передачу репозиторію, хостингу, бази даних, платіжних і аналітичних акаунтів на ваше ім’я.

Що має входити в першу версію MVP?

Першій версії потрібно все, що необхідно реальному користувачеві для виконання одного сценарію, і нічого з того, що важливо лише на масштабі, якого ви ще не досягли. На практиці це п’ять речей: акаунти з ролями, потрібними сценарію, сам ключовий сценарій, адмінпанель, щоб ваша команда бачила й виправляла записи без розробника, платежі, якщо бізнес-модель передбачає оплату з першого дня, та події аналітики, які показують, де користувачі зупиняються.

Відкладіть те, що можна робити вручну або купити пізніше: нативний мобільний застосунок, єдиний вхід (SSO) для корпоративних клієнтів, настроювану матрицю прав, другу інтеграцію, чат у застосунку та звіти, про які ніхто не просив. Кожен відкладений пункт усе одно отримує рядок в обсязі, щоб модель даних залишила для нього місце.

Більшість продуктів збирають із знайомих модулів. Два заслуговують на окрему згадку: бронювання й планування та воронка заявок для малого бізнесу, який сьогодні відстежує запити вручну. Обидва виглядають простими, але приховують рішення щодо часових поясів, статусів і відповідальності, які дешевше ухвалити ще на папері.

Що має входити в першу версію MVP?
МодульЩо потрібноЩо вирішити до початку розробки
Акаунти та роліРеєстрація, вхід, відновлення доступу та перевірка ролі в кожному серверному запитіЯкі ролі існують і чи може одна людина належати до кількох організацій?
Запрошення до командиПосилання-запрошення з терміном дії, кількість місць, передача володіння, видалення з негайним скасуванням доступуХто може запрошувати і що станеться із записами видаленого учасника?
Оплата та тарифиХостингова сторінка оплати або підписки, перевірені зворотні виклики, ліміти тарифу, що контролюються на серверіЩо входить у кожен тариф і що відбувається, коли платіж не проходить?
Бронювання й плануванняПравила доступності, часові пояси, буферні інтервали, захист від подвійного бронювання, нагадування, перенесенняХто задає доступність і чи утримується слот, поки клієнт платить?
Воронка запитів і лідівФорма із захистом від спаму, статуси від нового до виграного чи програного, призначення, джерело, запис згодиЯкі статуси ваша команда справді використовує і куди лід потрапляє далі?
Адмінка та звітністьПошук, історія записів, ручні виправлення, експортЯкі показники команда переглядає щотижня і хто може редагувати записи?
Власні домениПідключення імені хоста, перевірка DNS, статус сертифіката, перевірки тарифуЯкі тарифи включають домен і які обмеження хостингу діють?
Журнал аудитуЖурнал лише для додавання записів: хто, що і коли змінивЯкі дії мають бути відстежуваними для ваших клієнтів або аудиторів?
СповіщенняEmail-повідомлення та повідомлення в застосунку, шаблони, журнал доставки, налаштування користувачаЯкі події кого сповіщають і які можна вимкнути?

Який стек використовує Dardo і коли обирає інший?

За замовчуванням ми використовуємо TypeScript від початку до кінця: Astro для серверного рендерингу сторінок та інтерактивних «островів», Cloudflare Workers для хостингу й API, Cloudflare D1 або Postgres для даних і PostHog для аналітики та експериментів. Superame працює на Astro, а його рейтинг зберігається в Neon Postgres. Одна мова та одна платформа розгортання роблять невеликий продукт простим в експлуатації та передачі.

Ми обираємо інакше, коли цього потребує продукт. Щільний інтерфейс, що відкритий цілий день, може виправдати клієнтський застосунок на React, як у прототипі Shiimain. Довготривалі завдання, важка обробка даних або внутрішня команда, яка вже працює з іншим фреймворком, також змінюють відповідь. Якщо після запуску код належатиме вашим розробникам, зазвичай перемагає їхній стек.

Контроль доступу — перше, що ми тестуємо. OWASP Top 10:2025 залишає Broken Access Control на першому місці й повідомляє, що кожен протестований застосунок мав ту чи іншу його форму. Ми застосовуємо права на сервері для кожного запиту, за замовчуванням забороняємо, обмежуємо кожен запит організацією користувача, який увійшов, і пишемо автоматизовані тести, що намагаються прочитати записи іншого клієнта.

Як мають працювати платежі у вебзастосунку?

Платіж підтверджує платіжний провайдер на сервері; повернення браузера зі сторінки оплати нічого не підтверджує. Цей підхід показує Superame — публічний рейтинг проєктів серед опублікованих робіт Dardo. Покупці платять на захищеній сторінці оплати Dodo Payments, тож дані картки ніколи не потрапляють у застосунок. Далі провайдер надсилає підписаний колбек, а сервер перевіряє підпис і дані платежу, перш ніж нарахувати кредит.

Повернення коштів і спори проходять тим самим шляхом. Кожна подія провайдера застосовується лише раз, тому колбек, що надійшов двічі, із запізненням або не по порядку, не може нарахувати чи списати кредит двічі. Superame не публікує жодних показників користувачів чи доходу; це приклад того, як побудовано логіку платежів, а не доказ продажів.

  • Покупцеві, який закрив вкладку до перенаправлення, кредит усе одно нараховується, щойно надходить колбек.
  • Повторно надісланий або підроблений колбек відхиляється.
  • Повернення коштів або спір скасовує рівно те, що надав початковий платіж.
  • Ліміти тарифу перевіряються на сервері, а не лише приховуються в інтерфейсі.
  • Тестові та бойові ключі — це окремі секрети, які ніколи не зберігаються в репозиторії.

Дайте клієнтам змогу використовувати власні домени

Клієнти B2B SaaS часто хочуть, щоб продукт працював на їхній власній адресі, наприклад portal.theircompany.com. Cloudflare for SaaS вирішує це через власні імена хостів: тарифи Free, Pro і Business включають 100, кожне додаткове ім'я коштує $0.10, а максимум становить 50 000. Власні імена хостів із маскою (wildcard) доступні лише в Enterprise.

Ваш клієнт додає запис CNAME, що вказує на вашу цільову адресу. Використання запису A для цієї цілі, яке потрібне кореневому домену, за замовчуванням не підтримується, а проксі для кореневого домену (apex) — це платне доповнення Enterprise, тож більшості клієнтів варто використовувати піддомен. Сертифікати підтверджуються через HTTP, TXT чи електронну пошту або за допомогою Delegated DCV — одноразового запису, який дає змогу Cloudflare поновлювати їх автоматично. Їх видають Let's Encrypt, Google Trust Services або SSL.com.

Не менш важлива продуктова робота навколо цього: підключити домен можуть лише платні тарифи, екран онбордингу показує точний запис для додавання, статус перевірки простою мовою пояснює стани «очікує» та «помилка», а моніторинг сповіщає вашу команду, коли сертифікат не вдається поновити через зміну DNS клієнтом. Інші хостинги встановлюють інші ліміти: Vercel дозволяє 50 доменів на проєкт у Hobby та необмежену кількість у Pro і Enterprise, з м'якими лімітами 100 000 і 1 000 000; Netlify радить не більше 50 аліасів домену на сайт.

Запитання перед вибором

Від чого залежить вартість вебзастосунку чи MVP?

Вартість залежить від кількості ролей, складності основного робочого процесу, платежів, інтеграцій і обсягу наявних даних, які потрібно перенести. Права доступу та стани важать більше, ніж кількість екранів: один екран із п'ятьма ролями та етапом погодження — це більше роботи, ніж п'ять екранів лише для читання. Ми оцінюємо письмово визначений обсяг після етапу планування, а не за ставкою за функцію.

Скільки часу займає створення першої версії?

Це залежить від того, наскільки визначений робочий процес, як швидко надходять рішення та контент і чи потрібне погодження доступу від третіх сторін, як-от платіжний провайдер чи ІТ-команда клієнта. У пропозиції задано віхи, що починаються з робочого зрізу основного процесу. Дату повного релізу фіксуємо після прийняття цього зрізу.

Чи може Dardo перейняти наявну кодову базу?

Так, після аудиту. Ми переглядаємо репозиторій, залежності, модель даних, перевірки доступу, розгортання та те, хто контролює кожен обліковий запис, а потім повідомляємо, що можна залишити, що слід виправити спочатку і що доцільніше: ремонт чи переписування. Ми не обіцяємо зберегти чи замінити кодову базу, не прочитавши її.

Чи створюєте ви нативні застосунки для iOS та Android?

Ні. Dardo працює з вебом, зокрема зі встановлюваними вебзастосунками, що відкриваються з іконки на головному екрані. Якщо продукт залежить від функцій пристрою, недоступних у браузері, від розповсюдження через магазини застосунків або від інтенсивної офлайн-роботи, краще підійде нативний застосунок, і ми скажемо про це прямо. Вебзастосунок та його API все одно можуть слугувати бекендом для нативної команди.

Кому належать код і облікові записи?

Вам. Репозиторій, хостинг, база даних, домен, платіжний провайдер та акаунти аналітики створюються на ваше ім'я або передаються під час здачі проєкту, а в пропозиції перелічено всі ліцензовані залежності, які неможливо передати. Dardo зберігає лише той доступ, який ви надасте для підтримки.

Що вам потрібно від нас?

Особа, яка ухвалює рішення й може відповідати на питання щодо обсягу протягом кількох днів, доступ до систем, з якими має з'єднуватися продукт, і реальні приклади даних та документів, які використовує робочий процес. Відкрийте акаунт платіжного провайдера на вашу компанію заздалегідь, адже провайдери перевіряють бізнес, перш ніж дозволити реальні платежі.

Що відбувається після запуску?

Пропозиція може включати період підтримки: виправлення помилок, моніторинг і невеликі зміни, поки з'являються перші реальні користувачі. Після цього подальшу розробку погоджуємо як щомісячний обсяг робіт або як новий проєкт. Оновлення безпеки та оновлення залежностей не є необов'язковими, тому в обох випадках за них має відповідати конкретна людина.

З блогу

Джерела та додаткові матеріали

Джерела цієї сторінки з додатковими подробицями від першоджерел.

Пов'язані роботи та матеріали

Вебсайт superame.lol, проєкт DardoНа практиці / Вибрані роботиsuperame.lolПереглянути проєкт

Сплануйте першу версію

Опишіть робочий процес, який мають пройти ваші клієнти чи співробітники, і хто в ньому бере участь. Ми відповімо питаннями, що визначають обсяг робіт, і прямо скажемо, якщо вже є готовий інструмент, який вирішує завдання.