оновлено 9 хв читання

Сайт, який побудували троє, і жоден із них не людина

Комерційний B2B-лендінг для апарата RF-мікронідлінгу. Півтора місяця, жодного рядка коду, написаного мною, і 7,2 з 10 від незалежного аудиту.

Задача
Запустити комерційний B2B-сайт для преміального медичного обладнання без розробника в команді.
Обмеження
Один виконавець, робота уривками між іншими задачами, нуль рядків коду, написаних руками.
Результат
Сайт у продакшні за півтора-два місяці, оцінка зовнішнього аудиту 7,2 з 10.sylfirmx.com.ua →

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

Цього разу я вирішив зробити сайт сам. Ну майже.

Для дебюту вибрав щось легеньке: B2B-сайт для дорогого косметологічного обладнання. Аудиторія тут не випадкові перехожі, а власники клінік і лікарі-дерматологи. Люди, які твою помилку не пробачать мовчки, а пояснять вголос і з посиланням на протокол.

Результат живий за адресою sylfirmx.com.ua. Нижче те, що я з цього виніс, і кілька речей, які можна забрати собі, навіть якщо ви ніколи не збиралися робити сайт.

Що за проєкт

Продукт: Sylfirm X, апарат RF-мікронідлінгу корейського виробництва. Преміальний сегмент, для клініки це серйозна інвестиція, а не покупка між справами.

Це не сторінка для імпульсного рішення. Це digital-актив для угоди з циклом у кілька місяців, де на шляху до підпису стоять кілька людей, і кожен ставить свої незручні питання.

Стек: Next.js 14, TypeScript, Tailwind, статичний експорт, інтеграція з CRM через PHP-проксі. Я не вмію писати на жодній із цих технологій і після цього проєкту не навчився.

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

Команда була. Просто в ній була одна людина

Над сайтом працювали троє.

Я: постановка задач, структура, всі тексти, рішення й приймання роботи. Клод у чаті: обговорення архітектури, формулювань і спірних рішень до того, як щось пишеться. Claude Code: виконання, тобто код, збірка, правки у файлах. На фінальному рев’ю до процесу підключився ще й ChatGPT у ролі зовнішнього перевіряльника.

Троє з чотирьох не потребували ні кави, ні вихідних, ні пояснень, чому дедлайн учора.

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

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

Урок 1. Найважливіша секція технічного завдання називається «Чого НЕ робити»

Люди думають, ніби промпт про те, що просити. Насправді половина якості в тому, що заборонити.

Виглядало це так. Я пишу: «поправ відступ у кнопці в секції контактів». Отримую відповідь: «Готово. Заодно я перейменував змінні для консистентності, оптимізував сусідній компонент, виніс стилі в окремий файл і оновив структуру папок».

Звітують про це з гордістю. Я просив одну кнопку. Переписано пів сторінки, і тепер я маю перевіряти те, чого не замовляв.

Те саме завдання, плюс один блок:

Поправ відступ у кнопці в секції контактів.

ЧОГО НЕ РОБИТИ: не чіпати інші компоненти; не перейменовувати змінні; не міняти структуру файлів; не рефакторити нічого поза цим блоком.

Відповідь: «Готово. Змінено один рядок у ContactSection.tsx».

Все.

Робоче ТЗ у мене врешті виглядало так: точні шляхи до файлів і приблизні номери рядків, команди для самоперевірки, структурований формат звіту про виконане і секція «Чого НЕ робити».

І ще одне контрінтуїтивне. Короткі прямі завдання працювали краще за детальні покрокові схеми з чекпоінтами. Складна інструкція дає складну поведінку.

Що забрати собі: це працює не тільки з ШІ. Спробуйте додати блок «чого не робити» в наступне ТЗ живому підряднику. Кількість зайвої ініціативи впаде вдвічі.

Урок 2. Зміст затверджується до коду

Тексти кнопок, структура футера, копірайт кожної секції: усе узгоджувалось до того, як писався хоч рядок коду.

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

Що забрати собі: зміст це не «наповнення». Це креслення. Спочатку домовтеся, що ви говорите, і тільки потім вирішуйте, як це виглядає.

Урок 3. Один ШІ має перевіряти іншого

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

Тому в проєкті було розділення: одна модель обговорює й формулює, друга виконує, а третя на фінальному рев’ю приходить збоку й дивиться свіжим оком.

Це працює не тому, що якась модель розумніша. А тому, що в неї немає в контексті всієї історії проєкту і немає інерції «ми ж домовились так». Вона просто бачить результат і каже, що в ньому не так.

Що забрати собі: якщо ви питаєте ШІ «перевір, будь ласка, що ти щойно зробив», ви отримаєте ввічливе «все чудово». Відкрийте другий чат, бажано в іншого провайдера, дайте туди результат без передісторії й попросіть знайти слабкі місця. Це найдешевший спосіб підняти якість, який узагалі існує.

Урок 4. Я прибрав з таблиці порівняння всі хрестики, і вона стала продавати краще

Це та частина, у яку вкладено найбільше годин, а видно її найменше.

На сайті є таблиця порівняння з чотирма конкурентами: Morpheus8, Secret RF, Vivace, Virtue RF. Тринадцять параметрів. Тобто десятки клітинок, кожну з яких треба чимось обґрунтувати.

Стандартний підхід виглядає так: у нас галочки, у них хрестики. Я зробив інакше, три позначки замість двох.

ПозначкаЗначення
● ✓Застосування підтверджене протоколом виробника
○ ✓*Технічно можливо, але off-label, відповідальність на лікарі
прочеркФункції немає

Ніде не написано «конкурент не вміє». Написано, де є протокол виробника, а де лікар бере відповідальність на себе.

Різниця здається косметичною. Вона не косметична.

Щоб заповнити таблицю в такій логіці, не можна взяти маркетингові сайти конкурентів і переписати з них. Треба піти в офіційну документацію виробників, у зареєстровані показання, у клінічні протоколи, і на кожну клітинку відповісти на питання «а звідки я це знаю». Там, де протокол є, ставиться перша позначка. Де апарат фізично може, але виробник цього не заявляє, друга. Де не може, прочерк.

Це довго. Це найнудніша частина проєкту. І це єдина частина, яку я не став би скорочувати.

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

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

Романтики не було

Щоб не створювати враження, ніби це був рівний політ.

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

Приблизно в такі моменти нормальна людина замовляє сайт нормальним людям.

Але сайт відкрився. Живий, за своєю адресою, з телефона. Ніякого технічного досягнення тут немає, код писав не я. Просто вперше між ідеєю і результатом не стояла черга.

Аудит робив ChatGPT. Вийшло 7,2 з 10

Після запуску я попросив ChatGPT рознести готовий сайт у п’яти ролях: маркетолог, UI/UX, SEO, продажник і лікар. Він зробив це з ентузіазмом, якого я від нього не очікував.

Роль рецензентаОцінка
Маркетолог8/10
UI/UX7/10
SEO6/10
Продажі7/10
Погляд лікаря7/10
Загалом7,2/10

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

Частину правок я прийняв. Частину свідомо відхилив, бо не кожна рекомендація підходить конкретному бізнесу, і це нормально.

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

Цифру публікую як є. Кейс без слабких місць перестає бути кейсом і стає рекламою.

Скільки це коштувало

Щоб назвати цифру чесно, спершу треба визначити, до якої категорії належить цей сайт.

За опублікованими прайсами українських студій лендінг це одна сторінка з формою заявки й мінімумом контенту, і коштує він від 15 до 25 тисяч гривень. Фрілансер візьме менше, від 3 до 10 тисяч, агенція під ключ від 7 до 20. Хостер HOSTiQ називає орієнтир від $500 за лендінг у веб-студії.

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

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

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

Мої витрати: підписка на інструмент, хостинг і домен.

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

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

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

Але грошова різниця тут узагалі не найцікавіше. У 2020 році такий самий сайт у студії коштував би приблизно стільки ж. Різниця не в ціні. Різниця в тому, що тоді варіанта «зробити самому нормально» не існувало за жодні гроші. Або платиш підряднику, або збираєш конструктор і миришся з його обмеженнями. Третьої опції не було.

Зараз вона є. І головний виграш тут не економія, а контроль: правка вноситься тоді, коли вона потрібна, а не тоді, коли в підрядника звільнився розробник.

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

Сайт має другого читача, і це ваш відділ продажів

Що забрати собі: спитайте своїх менеджерів, чи відкривають вони сайт на дзвінках. Якщо ні, ви оплатили половину активу.

Що я з цього зрозумів

Не «ШІ зробив сайт замість людини». Це неправда, і будь-хто, хто пробував, це знає.

ШІ забрав виконання. Він не забрав постановку задачі, знання предметної області, смак і відповідальність за те, що вийшло. Тобто все, за що насправді платять.

Розробником я так і не став. Але мене більше ніхто не питає, чи це терміново.