Практична інструкція

Перевірка 793 сайтів на Lovable і Bolt: 27 з 105 контактних форм написали «надіслано» й нічого не надіслали

27 з 105 контактних форм на сайтах із Lovable і Bolt показали «Повідомлення надіслано!» і нічого не надіслали. Як ми тестували, що знайшли і як перевірити свою форму за 30 секунд.

Коротка відповідь. Ми заповнили й надіслали контактну форму на 105 публічних сайтах із Lovable і Bolt, записуючи кожен мережевий запит. 27 з 105 (26%) показали повідомлення про успіх на кшталт «Повідомлення надіслано!», хоча нічого нікуди не відправили, а ще 12 не зробили нічого видимого. Справді надіслали повідомлення лише 54 з 105. На сайтах без ознак демо фейковими були 16 з 73 форм. Свою форму можна перевірити за 30 секунд: відкрийте DevTools → Network, надішліть форму один раз і пошукайте запит, у якому є те, що ви ввели.

Formgong teamОновлено

Форми, що нічого не надсилають: перевірка 793 AI-сайтів
Перевірка 793 сайтів на Lovable і Bolt: 27 з 105 контактних форм написали «надіслано» й нічого не надіслали

Як виглядає фейкова контактна форма

Для відвідувача все виглядає бездоганно. Поля перевіряються, на кнопці з’являється «Надсилаємо…», а зелене сповіщення дякує. Але насправді з браузера нічого не виходить: ні запиту, ні листа, ні рядка в базі. Відвідувач думає, що до вас достукався. Ви про це так і не дізнаєтеся.

Коли ми читали код за такими формами, картина майже завжди була однакова: обробник надсилання чекає секунду, показує сповіщення й очищає поля. Немає ні fetch, ні поштового сервісу, ні звернення до бази даних.

Типовий фейковий обробник надсилання
// What we found, again and again (de-minified, names shortened):
onSubmit={(e) => {
  e.preventDefault();
  setSending(true);
  setTimeout(() => {
    toast({ title: "Message sent!", description: "We'll get back to you soon." });
    form.reset();
    setSending(false);
  }, 1000);
}}

Результати

Контактну форму ми знайшли на 119 з 793 перевірених сайтів; більшість інших — застосунки, дашборди й інструменти, де контактної форми немає взагалі. Для 105 з цих форм тест дав однозначну відповідь (решта 14 під час фінального прогону не завантажилися, не відповіли на клік або відхилили наші тестові значення). Ось що сталося після натискання «Надіслати»:

  • 27 з 105 показали повідомлення про успіх і нічого не надіслали. Ми прочитали код надсилання 21 з них і підтвердили, що мережевого виклику там немає; в інших код мініфікований так, що надійно його не прочитати, але браузер не побачив жодного запиту.
  • 12 з 105 не зробили нічого, що міг би помітити відвідувач: ні запиту, ні повідомлення. Частина, можливо, мовчки не пройшла валідацію; так чи інакше, повідомлення нікуди не йде.
  • 7 з 105 відкрили поштову програму відвідувача через посилання mailto:. Це спрацює, лише якщо в людини на комп’ютері налаштована поштова програма.
  • За білдерами: фейковими були 12 з 67 форм на Lovable і 15 з 38 на Bolt.

Куди йшли повідомлення з форм, які таки надсилали: таблиця в базі Supabase (14), edge-функція Supabase (13), EmailJS (13), власний сервер сайту (4), Formspree (3), FormSubmit (1), Google Apps Script (1), інші сервіси (5).

Хіба це не просто демо?

Частина — так. Наша вибірка схиляється до розробників: проєкти з хакатонів, портфоліо, пет-проєкти. Фейкова форма на демо з хакатону нікому нічого не коштує. Тому ще до підрахунку ми зафіксували правило й віднесли кожен сайт до однієї з груп: демо (проєкт із хакатону або контакти-заглушки на кшталт телефону з 555 чи адреси example.com), портфоліо (особистий сайт) або без ознак демо (усе інше).

Найчастіше форму підробляють демо, як і можна було очікувати. Але на решті сайтів проблема не зникає: 16 з 73 сайтів без ознак демо мали форму, яка дякує відвідувачу й нічого не надсилає. Серед них — магазини, студії, клінінгова компанія, сайти продуктів. Якщо брати лише сайти без ознак демо на власному домені — 5 з 30. «Без ознак демо» — обережна позначка, а не доказ того, що від форми залежить чийсь бізнес.

Як ми тестували

  1. Вибірка. 813 живих сайтів, зроблених у Lovable або Bolt. Ми зібрали їх із madewithlovable.com, проєктів на GitHub із файлами збірки Lovable чи Bolt, Hacker News і галереї хакатону Bolt. 20 з них використали лише для налагодження тесту.
  2. Пошук форми. Справжній Chrome (Playwright) відкривав головну сторінку, потім /contact. Контактною вважали форму з полем для повідомлення та полем для імені, email або телефону; форми входу й підписки на розсилку не рахувалися.
  3. Натиснути, але не надіслати. Ми заповнювали кожне видиме поле свідомо вигаданими тестовими даними, ніколи не чіпали полів-пасток (honeypot) і натискали кнопку надсилання. З цієї миті кожен вихідний запит записувався й переривався, тож нічого не дійшло ні до власника, ні до жодного сервісу. Пінги аналітики ми не враховували.
  4. Класифікація. Форма «надсилає», лише якщо якийсь запит ніс те, що ми ввели. Вона «підробляє успіх», лише якщо такого запиту не було, а повідомлення про успіх з’явилося (ми перевіряли кожні 250 мс протягом п’яти секунд, зокрема вікна alert()).

Ми записали правила до початку тестування й фіксували кожну зміну. Перші прогони мали помилки: пінги аналітики зараховувалися як надсилання, короткі сповіщення проскакували непоміченими, а заповнена прихована пастка викликала фейкові «Дякуємо», призначені для ботів. Кожну помилку виправили, перевірили на 23 тестових сторінках із відомою відповіддю, і всі сайти з формами протестували знову. Потім ми вручну прочитали код надсилання фейкових форм.

Перевірте свою форму за 30 секунд

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

Чому AI-білдери видають фейкові форми

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

Чому там заглушка — це наше прочитання, а не вимірювання: що Lovable чи Bolt генерують за замовчуванням, ми не тестували. Контактна форма складається з двох частин: поля на сторінці й щось на сервері, що приймає повідомлення й сповіщає вас. Для першої частини досить коду. Для другої потрібні акаунт, ключ або рішення щодо бекенду, і власна документація Lovable радить Supabase плюс поштовий сервіс на кшталт Resend, підключений через edge-функцію. Якщо цього рішення ніхто не ухвалив, найпростіше отримати форму, яка лише виглядає готовою.

Як полагодити форму, яка нічого не надсилає

Є три розумні варіанти:

  • Зробити бекенд у самому проєкті. У Lovable це таблиця Supabase, edge-функція і поштовий провайдер. Коли це виправдано, а коли простіше окремий сервіс, — у статті «Заявки з форми Lovable на пошту й у Telegram».
  • Використати mailto:. Нічого налаштовувати не треба, але це працює лише для відвідувачів із поштовою програмою на комп’ютері, і копії повідомлення у вас не залишиться. Порівняння — у статті «Форма mailto чи бекенд для форм».
  • Направити форму на бекенд для форм. Форма надсилає дані на одну адресу, а сервіс зберігає повідомлення й пересилає його вам на пошту. Так працюють Formgong, Formspree і Web3Forms. У Formgong безкоштовний тариф включає 300 заявок на місяць, миттєві сповіщення в Telegram і зберігання даних у ЄС; є готовий проєкт у Lovable, який можна скопіювати через Remix. Для агентів, що пишуть код (Claude Code, Cursor, Codex), є скіл, який додає форму й замінює фальшиві обробники: npx skills add formgong/skills.

Хоч би що ви обрали, показуйте повідомлення про успіх лише після того, як сервер підтвердив прийом. Вставте цей промпт у Lovable або Bolt, щоб замінити фейковий обробник:

Промпт для Lovable або Bolt
Моя контактна форма показує повідомлення про успіх, але нічого не надсилає.
Зроби так, щоб вона надсилала по-справжньому:
1. Під час надсилання відправляй поля форми POST-запитом на https://formgong.com/submit через fetch і FormData,
   із заголовком Accept: application/json, і додай access_key = "fk_your_access_key".
2. Показуй повідомлення про успіх, лише якщо в JSON-відповіді success === true.
   Інакше залиш те, що ввів відвідувач, і покажи повідомлення з відповіді.
3. У формі має бути приховане поле-пастка (honeypot) з назвою "botcheck".
Не додавай Supabase, edge-функції, Resend чи EmailJS. Не змінюй дизайн.

Обмеження

  • Вибірка не випадкова. Вона зібрана з публічних каталогів і схиляється до проєктів розробників; у галереї частіше потрапляють доведені до ладу сайти.
  • Оскільки ми блокували кожен запит, ми бачили, чи форма намагалася надіслати, а не чи дійшов лист. Форми, які ми зарахували до тих, що «надсилають», усе одно можуть зламатися далі.
  • Кожен сайт ми тестували кілька разів, поки виправляли тест; числа — з фінального прогону 8 жовтня 2026 року. Кілька сайтів між прогонами змінили групу, бо повільно завантажувалися або не завантажилися зовсім. Сайти змінюються: фейкову форму, можливо, уже полагодили.
  • mailto:, який відкрився без жодного повідомлення на екрані, або форма, яку заблокувала її власна валідація, можуть виглядати як «нічого не відбувається». Тому цю групу ми показуємо окремо й ніколи не додаємо до фейкових.
  • Ми не називаємо сайти. Суть у закономірності, а не в людях, які опублікували демо.

Питання та відповіді

Як дізнатися, чи моя контактна форма справді надсилає?

Відкрийте свій опублікований сайт, натисніть F12, перейдіть на вкладку Network, надішліть форму один раз і пошукайте новий запит, у якому є те, що ви ввели. Якщо запиту немає, форма нічого не надсилає, хоч би що вона показувала. Потім перевірте, чи повідомлення дійшло на пошту або в кабінет.

Чому форма в Lovable чи Bolt пише «Повідомлення надіслано», а листа немає?

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

Скільки контактних форм, зроблених з AI, нічого не надсилають?

У нашому тесті сайтів на Lovable і Bolt у жовтні 2026 року 27 з 105 контактних форм показали повідомлення про успіх, нічого не надіславши, а ще 12 не зробили нічого видимого. На сайтах без ознак демо фейковими були 16 з 73.

Ви надсилали повідомлення цим сайтам?

Ні. Кожен запит після кліку блокувався в браузері, тож жодне повідомлення не дійшло ні до власника сайту, ні до будь-якого сервісу форм.

Як найшвидше змусити форму працювати?

Направте форму на готовий бекенд для форм і показуйте успіх лише після того, як він підтвердить прийом. Промпт для Lovable чи Bolt — у цій статті.

Джерела та документація

Офіційні джерела для цієї інструкції: Lovable documentation: Resend integration, Chrome DevTools: Inspect network activity, MDN: Using the Fetch API, Playwright: Network interception. Formgong для Lovable, де зберігаються дані.

Завантажити текст статті (Markdown)

Оцініть цю статтю

Ваша оцінка

Ми читаємо кожну оцінку. Коментар з'явиться тут лише після нашого схвалення.

← До блогу