Хочете будувати кар’єру в Data Science та AI? Vodafone Big Data Lab відкриває новий набір —>
Марія БровінськаІсторії
29 жовтня 2026, 09:00
2026-10-29
«Код розростається швидше, ніж я встигаю його розуміти»: учитель математики створив AI-застосунок для подарунків за допомогою Codex. Як він поєднує школу та вайбкодинг
Удень Павло Махновець навчає дітей математики в Годомицькій гімназії на Волині, працює заступником директора й допомагає впроваджувати цифрові інструменти в школі. Увечері він може кілька годин виправляти помилки в коді, тестувати нові функції або домовлятися з українськими брендами про співпрацю. Так уже кілька місяців він розвиває Sviato — застосунок, який допомагає обирати подарунки, створювати списки бажань і знаходити товари українських виробників.
Удень Павло Махновець навчає дітей математики в Годомицькій гімназії на Волині, працює заступником директора й допомагає впроваджувати цифрові інструменти в школі. Увечері він може кілька годин виправляти помилки в коді, тестувати нові функції або домовлятися з українськими брендами про співпрацю. Так уже кілька місяців він розвиває Sviato — застосунок, який допомагає обирати подарунки, створювати списки бажань і знаходити товари українських виробників.
Першу версію Павло запустив приблизно за 2,5 місяці. Для розробки активно використовує Codex: інструмент допомагає писати код швидше, але іноді створює нову проблему — проєкт стає складнішим швидше, ніж розробник встигає розібратися в усіх його деталях.
«Код розростається швидше, ніж я встигаю його розуміти», — так Павло описує одну з головних складнощів роботи з AI.
Тепер у Sviato близько 2000 унікальних користувачів у вебверсії та застосунку, 13 брендів-партнерів і перші платні клієнти. Сам Павло відповідає майже за все: програмування, дизайн, тестування, аналітику, пошук партнерів і просування. І все це — паралельно зі школою.
dev.ua поговорив з Павлом про те, як звичайна розмова про подарунки перетворилася на IT-продукт, чого його навчає робота з дітьми, чому Codex не скасовує потреби розуміти код і як не загубитися серед десятків ідей, коли розробляєш застосунок практично самотужки.
Усе почалося з розмови про подарунки
Павло не шукав ідею для стартапу спеціально. Усе почалося з побутової ситуації: він почув, як його дружина із сестрою обговорювали подарунки.
У таких розмовах є знайома суперечність. З одного боку, хочеться отримати саме те, що потрібно. З іншого — якщо прямо сказати, що подарувати, від сюрпризу залишається небагато. А людина, яка шукає подарунок, ризикує витратити час на вибір речі, яка зрештою не знадобиться.
Павло задумався, чи можна поєднати ці два бажання: допомогти людині отримати те, чого вона справді хоче, але залишити близьким можливість зробити сюрприз. Так з’явилася ідея Sviato. Назву взяли від українського слова «свято», записаного латиницею.
На той момент Павло вже мав базові знання програмування й хотів застосувати їх на практиці. Він навчався в Mate academy, знав основи JavaScript, HTML і CSS, працював із версткою та Git/GitHub. До того ж давно цікавився вебдизайном і мав уявлення про те, як мають виглядати сайти та інтерфейси.
Певний практичний досвід уже був. Для дружини, яка виготовляє в’язані вироби, Павло створив сайт Soft Current. Там покупець може обрати товар і надіслати замовлення через форму, а повідомлення надходить у Telegram. Для керування замовленнями він також зробив просту адміністративну панель.
Але Sviato стало завданням іншого масштабу. Тут потрібно було не просто показати товари на сайті, а побудувати продукт із кількома сценаріями використання, базою даних, каталогом, персоналізованими рекомендаціями та мобільною версією.
Павло почав розробку на початку квітня. 13 червня застосунок уже з’явився в Google Play. У ці два з половиною місяці вклалися написання коду, тестування та підготовка до запуску. Від першої ідеї до готового продукту шлях виявився коротким — принаймні за календарем. Але запуск був лише початком роботи.
Список бажань — це тільки половина задуму
У Sviato, каже Павло, є кілька основних сценаріїв. Перший — списки бажань, які можна створювати й поширювати серед друзів або родичів. Користувач додає до списку речі, які хотів би отримати. Близькі можуть переглянути його й зарезервувати подарунок, щоб не купувати те саме, що вже обрав хтось інший. Водночас власник списку не бачить, хто саме зарезервував позицію. Так у подарунку залишається місце для сюрпризу.
Другий сценарій — пошук подарунка за допомогою AI. Він потрібен для ситуацій, коли людина знає, кому хоче щось подарувати, але не має конкретної ідеї. Користувач описує отримувача: його вік, інтереси, бюджет і бажаний характер подарунка. Наприклад, це може бути щось практичне або, навпаки, емоційне. За потреби можна вказати місто, щоб пошук охоплював локальні події чи враження. Запит можна набрати вручну або надиктувати голосом.
AI формує персоналізовані ідеї та пояснює, чому вони можуть підійти саме цій людині. Але тут важливо розрізняти дві речі: згенеровану ідею та реальний товар, який можна придбати.
Sviato має власний каталог партнерських продуктів із цінами, фотографіями й посиланнями. AI допомагає визначити, що може зацікавити отримувача, а логіка самого застосунку підбирає відповідні позиції з каталогу. Тобто модель не повинна просто вигадати товар і видати його за той, що існує в продажу.
Окрім рекомендацій, у каталозі є фільтри та сортування. Павло поступово наповнює його товарами українських виробників — від кераміки й солодощів до книжок, виробів ручної роботи та речей з українськими мотивами. Для нього каталог — це не просто спосіб монетизувати сервіс. Він хоче, щоб люди знаходили там бренди, про які раніше не знали.
«Мені подобається, коли люди відкривають для себе щось нове. Наприклад, не знали, що певний виріб зроблений в Україні, а через Sviato знаходять українську кераміку, незвичайні солодощі чи річ ручної роботи з власною історією», — розповідає Павло.
Це один із результатів, який він вважає особливо цінним: коли сервіс допомагає не просто вибрати подарунок, а ще й познайомитися з українськими майстрами.
Коли AI пише код, відповідальність усе одно залишається на розробнику
Павло створює Sviato практично сам. У нього немає окремої команди, де один фахівець відповідає за інтерфейс, інший — за серверну частину, а третій тестує готовий результат. Тому AI став одним з основних інструментів, які дозволяють рухатися швидше.
У розробці він використовує Codex. Робочий процес приблизно такий: Павло формулює завдання, отримує реалізацію, читає результат, перевіряє його й за потреби просить внести зміни. Потім тестує, чи працює нова функція і чи не зламала вона те, що було зроблено раніше.
Однак що швидше з’являється новий код, то важливіше розуміти, як він пов’язаний з рештою проєкту.
«Код розростається швидше, ніж я встигаю його розуміти», — каже Павло.
Іноді простіше вручну виправити якийсь елемент інтерфейсу, ніж кілька разів пояснювати Codex, що саме потрібно змінити. В інших випадках проблема складніша: нова функція може працювати сама по собі, але конфліктувати з уже наявною логікою. Тоді без розуміння структури застосунку важко визначити причину помилки.
Щоб зменшити кількість таких ситуацій, Павло почав використовувати правила й документацію проєкту. Вони дають Codex контекст перед виконанням завдання: як побудований застосунок, які рішення вже прийняті та яких принципів варто дотримуватися.
Це не усуває потреби перевіряти результат, але допомагає уникати ситуацій, коли кожне нове завдання модель виконує так, ніби бачить проєкт уперше.
Павло не сприймає AI як інструмент, якому можна просто передати весь продукт і чекати на готовий результат. Він допомагає автоматизувати частину роботи, однак складні помилки все одно потребують аналізу.
Для нього головний критерій — не те, чи написала код людина власноруч, чи згенерувала модель. Важливо, щоб продукт працював, був надійним і безпечним.
Що відбувається всередині Sviato
Технологічну основу застосунку становлять React, TypeScript, Vite і SCSS. Для зберігання даних, автентифікації та серверної логіки Павло використовує Firebase.
Вебверсія працює як PWA — прогресивний вебзастосунок. Android-версію він створив за допомогою Capacitor, який дає змогу використати вебтехнології для мобільного застосунку.
AI в Sviato потрібен не лише для генерації тексту з ідеями подарунків. Він також допомагає зробити каталог зрозумілішим для пошуку.
Для рекомендацій Павло використовує Google Gemini через Firebase AI Logic. Модель отримує дані про отримувача, його вік, інтереси, бюджет і бажаний тип подарунка, після чого формує персоналізовані пропозиції.
Окремо працює механізм підбору товарів із каталогу. Щоб він краще зіставляв запити з асортиментом, Павло використовує Google Cloud Vertex AI для збагачення карток товарів. Система допомагає додавати структуровані характеристики: цільову аудиторію, вікову групу, інтереси, ключові слова й особливості продукту.
Це важливо, бо сам опис товару не завжди дає достатньо інформації для якісного пошуку.
Виробник може написати, що виготовляє керамічну чашку ручної роботи, але не вказати, що вона може бути подарунком для людини, яка цікавиться українським ремеслом або незвичайними предметами для дому.
Додаткові характеристики допомагають системі знаходити такі зв’язки.
Павло перевіряє якість добору за допомогою автоматизованих тестів: зокрема, чи враховує система інтереси, вік і бюджет, чи дотримується обмежень безпеки. Він також перевіряє релевантність і різноманітність результатів, відстежує переходи до товарів і додавання їх до списків бажань.
Проте навіть правильно підібраний за всіма параметрами подарунок не обов’язково сподобається людині. Уподобання складніші за набір характеристик, а тому зворотний зв’язок користувачів залишається важливою частиною розвитку сервісу.
Нових ідей завжди більше, ніж часу
Ще одна складність, з якою зіткнувся Павло, — бажання постійно додавати нові функції. Спочатку він зосередився на списках бажань. Потім з’явилися AI-рекомендації, каталог, фільтри, сортування та інші можливості. Кожна з них здавалася логічним наступним кроком. Але разом вони перетворювали розробку на нескінченний список завдань.
Ідеї приходили швидше, ніж Павло встигав завершувати попередні. А що більше функцій з’являлося, то більше часу доводилося витрачати на перевірку їхньої взаємодії. Іноді виправлення однієї проблеми створювало іншу. Деякі можливості після тривалої роботи доводилося прибирати або переробляти.
Поступово чоловік зрозумів, що кількість функцій сама по собі не робить продукт кращим. Якщо користувач не може розібратися в інтерфейсі, стикається з помилками або отримує невдалі рекомендації, нова можливість навряд чи розв’яже проблему. Тепер він намагається спершу з’ясувати, що саме заважає людям користуватися сервісом.
Наприклад, якщо багато користувачів відкривають форму AI-рекомендацій, але мало хто починає заповнювати її, це привід перевірити сценарій. Можливо, форма надто складна, незрозуміла або вимагає зайвих дій.
Такі спостереження допомагають визначати пріоритети: не просто додавати те, що здається цікавим розробнику, а покращувати те, що справді впливає на досвід користувача.
Це особливо важливо, коли всі ролі зосереджені в одних руках. Павло не лише пише код, а й тестує застосунок, виправляє помилки, аналізує поведінку користувачів, відповідає на повідомлення, шукає партнерів, веде Instagram і Threads та оцінює результати просування.
Для тестування він залучає друзів і родину, а також шукає людей у Telegram-спільнотах. Дружина стала однією з перших тестувальниць: вона перевіряє вебверсію та iOS-варіант, ділиться враженнями й допомагає помічати проблеми, які розробник може не побачити сам.
Окремим випробуванням стала публікація в Google Play: Павло робив це без попереднього досвіду й мусив самостійно розбиратися з процесом запуску.
Від перших користувачів до платних партнерів
Наразі Sviato мав близько 2000 унікальних користувачів у вебверсії та застосунку й приблизно 1000 завантажень у Google Play. У каталозі — 13 партнерських брендів. Серед них BAZHANI, ZOLA, Spell Chocolate, Leaf Ceramics, Glimmer і «Видавництво Старого Лева».
Павло шукає виробників переважно через Instagram і прямі звернення. Згодом до роботи з брендами додалися видавництва. Його аргумент простий: Sviato може показати товари людям, які вже шукають подарунок, а не просто випадково натрапили на рекламу.
Спочатку партнери могли розміщуватися безкоштовно. Згодом Павло запровадив платну модель співпраці. Нині чотири партнери платять за присутність у сервісі, інші перебувають на безкоштовному тестовому періоді або працюють на окремих умовах. Для видавництв, зокрема, передбачено безкоштовне розміщення.
Проєкт має два формати монетизації. Gold передбачає фіксовану щомісячну оплату. У Standard партнер платить за унікальні переходи до свого сайту. Комісію з продажів Sviato не бере. Партнери отримують доступ до панелі з аналітикою: можуть бачити переходи на сайт, інтерес до окремих товарів і те, які позиції привертають увагу користувачів. Це дозволяє перевіряти, чи приносить присутність у каталозі практичну користь брендам. Для самого Павла це також спосіб поступово з’ясувати, яка бізнес-модель працюватиме для продукту.
Водночас для звичайних користувачів Sviato залишається безкоштовним.
Павло хотів би зберегти цей принцип і не перетворювати сервіс на майданчик із нав’язливими спливаючими рекламними вікнами.
Поки що це ранній етап розвитку. Але перші платні партнери означають, що Sviato поступово переходить від особистого проєкту до продукту, для якого потрібно знаходити стійку модель фінансування.
Після уроків — ще чотири години роботи
Розробка Sviato відбувається паралельно зі шкільною роботою, яка сама по собі не обмежується проведенням уроків.
Павло викладає математику в Годомицькій гімназії вже три роки. Згодом йому запропонували стати заступником директора. Разом із директором він був серед тих, хто в громаді одним із перших почав упроваджувати «Мрію»: учителі працюють з електронними журналами, а учні — з електронними щоденниками.
Тож цифрові інструменти для нього — не лише частина власного IT-продукту. Вони є і в повсякденній роботі школи, де потрібно організовувати навчання, працювати з інформацією та виконувати адміністративні завдання. Зазвичай шкільний день завершується близько третьої-четвертої години дня. Після цього Павло перемикається на Sviato. У середньому він приділяє проєкту близько чотирьох годин на день — приблизно 24 години на тиждень протягом шести днів.
Найбільше часу на розробку вдалося знайти влітку, під час канікул. Але й зараз потрібно встигати все: від виправлення помилок до листування з брендами й аналізу того, як користувачі взаємодіють із застосунком.
Учні знають про Sviato, однак Павло не рекламує власний продукт на уроках. Він не хоче використовувати своє становище вчителя для просування сервісу.
Поки що, каже педагог, він також не поспішає залишати школу заради повноцінної роботи над продуктом. Sviato приносить задоволення, хоча є й стрес, переживання та постійне відчуття, що справ більше, ніж годин у добі. Павло не впевнений, що перехід на повний робочий день у власному проєкті зробив би його щасливішим чи продуктивнішим: є ризик вигоріти. Тому зараз математик намагається розвивати Sviato паралельно з основною роботою, перевіряючи, чи може продукт вирости в повноцінний бізнес.
Учні з ШІ, розробники з ШІ — одна й та сама проблема
Штучний інтелект розробник використовує не лише для програмування. У школі він звертається до нього, коли готує вправи, презентації або структурує й аналізує адміністративні дані.
Результати математик перевіряє самостійно. За його спостереженнями, якість відповідей останнім часом помітно поліпшилася. Якщо приблизно рік тому ШІ міг помилятися навіть у простих прикладах на множення чи ділення дробів, то останнім часом Павло майже не помічав таких помилок.
Учні також користуються ШІ. Часто — щоб створити кумедне зображення або швидко написати есе. Але готовий текст ще не означає, що дитина зрозуміла тему.
«Якщо учень просто скопіював відповідь і навіть не прочитав її, навчання не відбулося», — вважає Павло.
На його думку, завдання вчителя нікуди не зникає. Потрібно пояснити матеріал зрозуміло й цікаво, побудувати послідовність навчання, підтримати учня та перевірити, чи справді він засвоїв тему. І тут педагог бачить пряму паралель із розробкою за допомогою шучного інтелекту. Учень, який копіює відповідь, не розуміючи її, нагадує розробника, який приймає згенерований код, не розібравшись, як той працює.
Педагогічний досвід допомагає Павлу й у власному проєкті. Він звик терпляче пояснювати складне, структурувати інформацію, комунікувати з людьми та ставити запитання: чому отримали саме такий результат і на чому він ґрунтується? Ці навички важливі й під час роботи з ШІ, переконаний вчитель. Щоб отримати корисний результат, на його думку, недостатньо просто попросити модель щось зробити. Потрібно сформулювати завдання, надати контекст, оцінити відповідь і зрозуміти, що з нею робити далі.
Водночас Павло хотів би, щоб у вчителів було більше можливостей для розвитку — зокрема, коштів на підписки, навчальні матеріали та пристрої для себе й учнів.
Не чекати, поки будеш готовий
У майбутньому Махновець хоче, щоб Sviato став місцем, де люди знаходять подарунки, створюють списки бажань, діляться ними з близькими й поступово здійснюють ці бажання. Йому подобається уявляти момент, коли список заповнюється, а бажання виконуються — як знак, що сервіс справді допомагає людям. Окрема мета — підтримувати українських майстрів і бренди, які створюють унікальні речі, але не завжди мають достатньо можливостей, щоб знайти власну аудиторію.
Поки що Sviato залишається проєктом, який Павло розвиває паралельно зі школою. Він перевіряє функції, шукає партнерів, аналізує поведінку користувачів і поступово вчиться будувати бізнес навколо власної розробки. Тим, хто також хоче створити продукт за допомогою вайбкодингу, він радить не чекати, поки з’являться всі потрібні знання й ідеальний план. "Потрібно починати, пробувати й вчитися на власних помилках. Адже поки не зробиш першого кроку, шансів довести задум до реального продукту немає", — резюмує педагог.
«Багато учнів вважають, що вже все знають, швидко забувають те, що вчили раніше». Учитель інформатики, що паралельно працює в SoftServe, ― про коротку пам’ять учнів, ШІ й цифровізацію у школі та лайфхаки для вивчення точних наук
Учитель інформатики з Києва разом з учнями створив гру про війну Ukrainians: Our battle. Реліз незабаром, а поки розробники збирають бажаючих пограти на сторінці гри у Steam