Современная разработка веб-приложений: тренды
Урок 0. VIBE CODING — новый способ разработки
— Что такое Vibe Coding на самом деле
—Чем Vibe Coding отличается от No-code и Low-code
—Новый тип разработчика (кем вы станете)
Урок 1. Революция в разработке: No-Code, AI-Code, Low-CodeИдея → Концепция → Архитектура приложения
Урок 1. Генерация идей с помощью ИИGoogle AI Studio — центр разработки приложений
Урок 1. Введение в Google AI Studio— публикация
4. Модуль
No-Code: создание приложений без кода
Урок 1. Bubble — логика, API и реальные приложения (CRM / SaaS)— Пул готовых компонентов
5. Модуль
Low-code и минимальный код (AI-Code)6. Модуль
Базы данных, API, интеграцияИТОГОВЫЙ ТЕСТ
ПОЛУЧИТЬ СЕРТИФИКАТ
Подход | Что делает человек | Что делает ИИ / платформа |
No-code | Кликами собирает логику | Выполняет заданные правила |
Low-code | Пишет части кода | Дополняет и ускоряет |
Vibe Coding | Описывает продукт и поведение | Проектирует, пишет, связывает всё |
Задача | Инструмент |
Идея и концепция | ChatGPT, GigaChat |
Архитектура | Google AI Studio |
UI | Galileo AI, AI Studio UI |
Логика | AI Studio, Cursor |
MVP | No-code + AI |
Деплой | Vercel, Firebase |
Тип продукта | Что можно создать без кода | Какие инструменты подходят | Срок создания | Навык, который прокачивается |
SaaS-сервис | Личный кабинет, подписка, база данных, платежи | Bubble, FlutterFlow, WeWeb | 7–21 день | Архитектура продукта |
CRM для бизнеса | Воронки, заявки, клиенты, статусы, отчёты | Airtable, SmartSuite, AppSheet, NocoDB | 3–10 дней | Работа с данными |
AI-приложение | Чат-бот, ассистент, генератор контента, рекомендаций | Flowise, Dify, ZAPT, AgentHub | 1–7 дней | Работа с ИИ и API |
Боты | Telegram-боты, автоворонки, чат-поддержка | BotMother, Make, n8n, Albato | 1–5 дней | Автоматизация процессов |
Маркетплейсы услуг/товаров | Каталог, корзина, фильтры, авторизация | Bubble, Softr, WeWeb | 10–30 дней | UI/UX + логика |
Корпоративные сервисы | Интранет, база сотрудников, задания, документы | SmartSuite, Notion, AppSheet | 5–14 дней | Системное мышление |
Параметр | Классическая разработка | No-Code | AI-Code (ИИ-помощники) |
Скорость разработки | 1–6 месяцев | 3–21 дней | 1–10 дней |
Стоимость | 150 000–1 500 000 ₽ | 0–5000 ₽/мес | 0–3000 ₽/мес + no-code |
Кто может использовать | Только разработчики | Новички, предприниматели, маркетологи | Все + улучшенные возможности |
Гибкость изменений | Низкая: нужна команда | Высокая: меняешь сам | Очень высокая: ИИ переписывает функционал |
Сложность обучения | Высокая | Средняя | Низкая: ИИ делает часть работы |
Когда подходит | Большие проекты, сложные системы | MVP, бизнес-автоматизация, быстрые решения | Быстрый запуск, прототипы, AI-сервисы |
Прогноз развития в 2025+ | Снижение доли на рынке | Рост ×3 | Стремительный рост ×5 |
Категория | Инструмент | Для чего подходит | Особенности |
AI-разработка | Google AI Studio | генерация UI, логики, кода, агентов | полноценные AI-приложения без разработчика |
Cognition Devin | автоматизированная разработка | сам пишет код и деплоит | |
Cursor | работа с кодом через ИИ | лучший ИИ-IDE 2025 года | |
No-Code веб-приложения | Bubble | сложные SaaS и CRM | большая экосистема плагинов |
Webflow / WeWeb | сайты с логикой | анимации, адаптивность | |
FlutterFlow | веб + мобильные приложения | экспорт кода, Firebase | |
Российские платформы | Directual | логика и backend | подходит для крупных проектов |
Nocodez / КодБезКода | простые бизнес-сервисы | быстрое обучение | |
AppMaster | бизнес-автоматизация | корпоративные решения | |
Автоматизации и API | Make / n8n / Albato | интеграции и сценарии | сотни коннекторов |
Базы данных | Airtable / Baserow / Supabase | таблицы + API | подходят для MVP и SaaS |
Профессия | Что делает специалист | Сколько зарабатывают в 2025 году | Почему востребована |
No-Code разработчик | создаёт сайты, сервисы, CRM, SaaS | 80 000–260 000 ₽/мес | бизнесам нужны быстрые решения |
AI-разработчик (без кода) | создаёт AI-брокеров, ассистентов, чат-ботов | 120 000–350 000 ₽/мес | дефицит специалистов ×4 |
AI-интегратор | подключает модели и автоматизацию | 100 000–300 000 ₽/мес | компании переходят на ИИ |
Автоматизатор Make/n8n | выстраивает процессы, боты, сценарии | 90 000–270 000 ₽/мес | спрос в SMM, ecom, малом бизнесе |
Разработчик в Google AI Studio | собирает приложения по ТЗ через ИИ | 150 000–400 000 ₽/мес | новый тренд рынка |
UX-архитектор no-code | проектирует пользовательские сценарии | 100 000–240 000 ₽/мес | важный навык для SaaS и AI-сервисов |
Идея / кейс | Что получится | Инструменты | Время создания | Где можно монетизировать |
AI-ассистент для бизнеса | чат-бот, отвечающий клиентам | Google AI Studio, Dify, GigaChat | 1–3 дня | Telegram, сайт |
Мини-CRM для предпринимателя | заявки, клиенты, статусы, файлы | Bubble, Directual, Airtable | 3–7 дней | продавать как SaaS |
Микросервис по подписке | генерация текстов / изображений | AI Studio + Webflow | 2–5 дней | подписка от 290–990 ₽ |
Маркетплейс услуг | карточки исполнителей, фильтры, чат | Bubble, WeWeb, Supabase | 7–20 дней | монетизация комиссией |
Сервис аналитики | дашборды, отчёты, загрузка данных | SmartSuite, Directual | 5–10 дней | B2B компании |
Telegram-бот с автоворонкой | сбор лидов, ответы, автоматизация | BotMother, Albato, Make | 1–2 дня | агентские услуги |
AI-приложение с рекомендациями | анализ данных + выдача решений | Google AI Studio, Gemini API | 2–4 дня | продать как готовый MVP |
Тип проекта / задача | Лучшая платформа | Почему это лучший выбор | Уровень сложности |
Лендинг, промо-сайт, визитка | Webflow / Tilda | Быстрый запуск, идеальный визуальный контроль, готовые блоки, легко адаптировать | ★☆☆ |
Сложное веб-приложение / SaaS | Bubble / Directual | Гибкая логика, API, сложные workflows, большие экосистемы, готово для MVP и продакшена | ★★★ |
Мобильное приложение + веб-панель | FlutterFlow | Генерация реального кода, публикация в сторах, богатые UI-компоненты | ★★☆ |
AI-приложение (бот, web-AI, агент) | Google AI Studio / v0.dev / GigaChat Studio | Быстрые AI-функции, готовые инструменты для агентов, chat-flows, легкая интеграция | ★☆☆ |
Корпоративная CRM / ERP | Directual / AppMaster | Надёжная архитектура, модели данных, роли, интеграции, скорость разработки | ★★★ |
Marketplace / сервис под ключ | Bubble / WeWeb + Xano | Гибкость фронта и мощный backend, хорошая масштабируемость | ★★★ |
Простой продукт за 1 день | Softr / Nocodez | Шаблоны, быстрые сборки, минимальный порог входа | ★☆☆ |
Приложение с сильным UI-дизайном | WeWeb / Webflow | Пиксель-перфект дизайн, красивые интерфейсы без кода | ★★☆ |
Блок задания | Шаг | Действие (точное) | Что показать в скринкасте |
A. Деплой мини-проекта на Vercel | 1 | Установить проект: npx create-next-app my-app | Окно терминала, создание проекта |
2 | Перейти в папку проекта: cd my-app | Терминал | |
3 | Инициализировать Git: git init | Терминал | |
4 | Сделать первый коммит | git add . → git commit -m "init" | |
5 | Создать GitHub репозиторий | GitHub UI: “New Repository” | |
6 | Подключить локальный проект | Команды git remote add и git push | |
7 | Перейти в Vercel → New Project | Интерфейс Vercel | |
8 | Выбрать репозиторий | GitHub интеграция | |
9 | Подтвердить настройки (Next.js определяется автоматически) | Экран конфигурации | |
10 | Нажать Deploy | Финальный экран деплоя | |
11 | Открыть Preview URL | Vercel "Visit" | |
12 | Проверить Production URL после пуша в main | Страница проекта | |
13 | Добавить переменную окружения: NEXT_PUBLIC_TEST=hello | Vercel → Settings → Environment Variables | |
14 | Перестроить проект | Кнопка “Redeploy” | |
B. Подключение Supabase | 1 | Перейти на supabase.com → “New Project” | UI Supabase |
2 | Ввести название и пароль, создать проект | Экран создания | |
3 | Открыть вкладку Database | Интерфейс DB | |
4 | Создать таблицу messages (id, text, created_at) | SQL Editor или Table Editor | |
5 | Перейти в Project Settings → API | Доступ к URL + anon key | |
6 | Установить клиент Supabase: npm install @supabase/supabase-js | Терминал | |
7 | Создать файл клиентской конфигурации /lib/supabase.js | Показать структуру | |
8 | Подключить Supabase в Next.js и вывести сообщения | Страница /messages | |
9 | Проверить запросы и realtime | Консоль + UI | |
10 | Добавить форму добавления сообщения | Показать UI формы | |
C. Домен и SSL на Vercel | 1 | Зайти в Vercel → Domains → Add | UI домена |
2 | Ввести домен | Поле ввода | |
3 | Получить DNS-записи (A/CNAME) | Экран DNS | |
4 | Перейти в Reg.ru/Namecheap и добавить DNS | Панель доменов | |
5 | Вернуться в Vercel → Check DNS | Кнопка проверки | |
6 | Убедиться, что статус стал “Verified” | Плашка Verified | |
7 | Проверить бесплатный SSL (Let’s Encrypt) | Статус SSL Enabled | |
8 | Открыть сайт по HTTPS | В браузере |
Файл / Папка | Назначение | Содержимое |
/pages/index.js | Главная страница | Тестовый рендер + вывод данных из Supabase |
/pages/messages.js | Страница списка сообщений | Получение и отображение данных из таблицы messages |
/components/MessageForm.js | Компонент формы | Поле ввода + отправка сообщения в Supabase |
/lib/supabase.js | Клиент Supabase | Инициализация SDK с URL и anon key |
/styles/globals.css | Базовые стили | Tailwind (опционально) или базовые стили |
/utils/validators.js | Валидация формы | Проверка длины текста |
.env.local | Переменные окружения | NEXT_PUBLIC_SUPABASE_URL=...NEXT_PUBLIC_SUPABASE_ANON_KEY=... |
package.json | Зависимости проекта | next, react, @supabase/supabase-js |
README.md | Инструкция по запуску | Команды и порядок установки |
/public/ | Статические ассеты | Логотипы, картинки |
/hooks/useMessages.js | Пользовательский хук | Реалтайм-подписка + fetch |
/pages/api/add-message.js | API-роут (опционально) | Серверная обработка сообщений |
Цель | Готовый промпт | Что получится на выходе |
Найти идеи под заработок | Предложи 10 идей веб-приложений, которые можно реализовать без сложной разработки и продавать по подписке. Укажи целевую аудиторию и проблему. | Список SaaS-идей + ЦА |
Идеи под фриланс | Сгенерируй идеи веб-сервисов, которые фрилансер может сделать за 1–2 недели и продать клиенту. | Простые, продаваемые проекты |
Идеи под бизнес | Предложи идеи веб-приложений для малого бизнеса (CRM, автоматизация, аналитика), которые можно создать через no-code и AI. | B2B-сервисы |
AI-ассистенты | Сгенерируй идеи AI-ассистентов для сайта или сервиса, которые реально востребованы и могут быть монетизированы. | ИИ-функции и боты |
Проверка ниши | Проанализируй востребованность идеи: [описание идеи]. Для кого, какую проблему решает, есть ли конкуренты. | Анализ рынка |
MVP без кода | Какой минимальный функционал нужен, чтобы запустить MVP для идеи: [идея]? Опиши в виде списка. | Список функций MVP |
Уникальность | Предложи 5 способов сделать эту идею уникальной и отличаться от конкурентов. | USP и фичи |
Масштабирование | Как можно масштабировать этот сервис через 3–6 месяцев? | Стратегия роста |
Блок | Описание / Что заполнить |
Название проекта | Рабочее название сервиса |
Тип приложения | SaaS / CRM / сервис / AI-приложение / бот |
Целевая аудитория | Кто будет пользоваться (ниша, профессия, бизнес) |
Проблема | Какую конкретную боль решает приложение |
Решение | Как сервис решает эту проблему |
Ключевая ценность | Почему это удобно / выгодно / быстрее |
Основной функционал | 3–7 ключевых функций |
AI-функции | Где используется ИИ (чат, анализ, генерация, рекомендации) |
Формат MVP | Что делаем в первой версии |
Инструменты | Google AI Studio / no-code / low-code / ИИ |
Монетизация | Подписка / разовый платёж / freemium |
Каналы продвижения | SEO, Telegram, VK, Google, Product Hunt |
Потенциал роста | Новые функции, новые рынки |
Критерий | Вопрос для проверки | Да / Нет / Комментарий |
Платёжеспособная аудитория | У этой ЦА уже есть расходы на сервисы, софт, автоматизацию? | |
Частота проблемы | Проблема возникает регулярно (каждый день / неделю)? | |
Срочность | Проблему нужно решать быстро, а не «когда-нибудь»? | |
Альтернативы | Сейчас проблему решают вручную / таблицами / костылями? | |
Экономия времени | Сервис экономит минимум 1–5 часов в неделю? | |
Экономия денег | Сервис снижает затраты или увеличивает доход? | |
Готовность платить | Можно ли назвать цену, которую ЦА не будет долго обдумывать? | |
Конкуренты есть | Уже есть похожие сервисы (это плюс, не минус)? | |
Отличие от конкурентов | Есть ли простое отличие / фича / нишевание? | |
Простота MVP | Можно ли сделать первую версию за 7–14 дней? |
Вопрос | Да / Нет |
Я понимаю проблему глубже, чем «кажется полезным» | |
Я могу объяснить ценность сервиса за 10 секунд | |
Сервис решает одну основную задачу (не всё сразу) | |
Для запуска не нужны большие вложения | |
Я могу найти первых пользователей сам | |
MVP не требует сложной логики и большого backend | |
Есть понятный путь монетизации | |
Сервис можно улучшать поэтапно | |
Проект интересен мне лично | |
Его можно сделать с помощью no-code / AI |
Этап | Действие пользователя | Цель пользователя | Что делает система | Возможные проблемы |
Вход | Заходит на сайт / сервис | Понять, что это | Показывает ценность и CTA | Непонятно, зачем сервис |
Регистрация | Регистрируется / логинится | Получить доступ | Проверка данных, вход | Сложная форма |
Онбординг | Выбирает сценарий | Быстро начать | Подсказки, автонастройка | Слишком много шагов |
Основное действие | Вводит данные | Получить результат | Обработка данных + ИИ | Долгая генерация |
Результат | Смотрит результат | Использовать результат | Отображение, сохранение | Неочевидные действия |
Повтор | Возвращается | Сделать ещё | История, шаблоны | Нет мотивации |
Монетизация | Оплачивает | Получить доступ | Оплата, тарифы | Недоверие |
Сценарий | Шаг пользователя | Ответ системы | Экран / модуль |
Регистрация | Вводит email | Проверка, вход | Auth |
Выбор действия | Выбирает сценарий | Загрузка шаблона | Dashboard |
Ввод данных | Заполняет форму | Валидация | Input |
Генерация | Нажимает «Создать» | ИИ-обработка | AI Module |
Результат | Смотрит результат | Отображение | Result |
Сохранение | Сохраняет | Запись в БД | Database |
Оплата | Оплачивает | Открытие доступа | Billing |
Блок | Что описать | Инструменты |
Тип приложения | SaaS / сервис / AI | — |
Роли пользователей | Гость / пользователь / админ | — |
Экраны | Список экранов | No-code |
Навигация | Переходы между экранами | No-code |
Основная логика | Что происходит при действиях | Google AI Studio |
AI-модули | Где используется ИИ | Gemini / OpenAI |
База данных | Какие данные храним | Supabase / Firebase |
Интеграции | API, сервисы | Make / API |
Авторизация | Как входить | Firebase / Supabase |
Монетизация | Подписки, лимиты | Stripe / ЮKassa |
Хостинг | Где размещаем | Vercel / RU |
Масштабирование | Что добавим позже | — |
Проверка | Вопрос для себя | Да / Нет |
Первый шаг | Понимает ли пользователь, что делать, за 3 секунды? | |
Основное действие | Есть ли одна главная кнопка / действие на экране? | |
Ясность экрана | Можно ли объяснить этот экран одним предложением? | |
Лишние экраны | Есть ли экраны, которые можно убрать без потери смысла? | |
Результат | Видит ли пользователь результат сразу после действия? | |
Минимум кликов | Можно ли дойти до результата за 1–3 шага? | |
Повторяемость | Понятно ли, как повторить действие второй раз? | |
Ошибки | Понятно ли пользователю, что делать, если что-то пошло не так? |
Экран | Назначение | Комментарий |
Login / Signup | Вход и регистрация | Минимум полей |
Dashboard | Точка старта | Главное действие сразу видно |
Input | Ввод данных | Формы, параметры |
Processing (опционально) | Ожидание / генерация | Спиннер, прогресс |
Result | Результат | Основная ценность сервиса |
History | История действий | Повторное использование |
Billing / Limits | Оплата / ограничения | После ценности |
Settings (опционально) | Настройки | Не для MVP |
Проверка | Вопрос | Ответ | Комментарий |
Первый шаг | Понимает ли пользователь, что делать за 3 секунды? | ✅ Да | Кнопка «Создать описание» сразу на экране |
Основное действие | Есть ли одно главное действие? | ✅ Да | Генерация описания |
Ясность экрана | Можно ли объяснить экран одним предложением? | ✅ Да | «Введите данные → получите текст» |
Лишние экраны | Есть ли экраны, которые можно убрать? | ✅ Да | Нет профиля, чатов, сложных настроек |
Результат | Видит ли пользователь результат сразу? | ✅ Да | Текст появляется после генерации |
Минимум шагов | Можно ли дойти до результата за 1–3 шага? | ✅ Да | Ввод → кнопка → результат |
Повторяемость | Понятно ли, как сделать ещё раз? | ✅ Да | Кнопка «Создать ещё» |
Ошибки | Понятно ли, что делать при ошибке? | ⚠️ Частично | Нужно добавить подсказку |
Экран | Что на нём | Нужен для MVP |
Login / Signup | Email + вход | ⚠️ Можно позже |
Dashboard | Кнопка «Создать описание» | ✅ Да |
Input | Название товара, характеристики | ✅ Да |
Result | Сгенерированное описание | ✅ Да |
History | История генераций | ⚠️ Опционально |
Billing | Ограничения / оплата | ⚠️ После ценности |
Задача | Делать в Google AI Studio | Делать вне AI Studio | Комментарий |
Формулировка идеи | ✅ | Studio хорошо структурирует мысль | |
Описание ЦА и цели | ✅ | Используется как App Context | |
Генерация архитектуры | ✅ | Основа проекта | |
Пользовательские сценарии | ✅ | Logic & Flow | |
UI-экраны | ✅ | UI Screens Tool | |
Логика взаимодействий | ✅ | Условия, переходы | |
ИИ-функции | ✅ | Gemini / Agents | |
Код сложной логики | ✅ | Cursor, IDE | |
Продакшн-деплой | ✅ | Vercel, Hosting | |
Дизайн-полировка | ✅ | Figma | |
Масштабирование | ✅ | Backend, DevOps |
Блок | Что заполнить | Пример |
Название приложения | Рабочее название | AI Product Writer |
Тип сервиса | SaaS / AI / сервис | AI-сервис |
Целевая аудитория | Кто пользователь | Продавцы маркетплейсов |
Основная проблема | Что болит | Нет времени писать описания |
Ценность | Как решаем | Генерация текста за 30 секунд |
Основное действие | Главное действие | Сгенерировать описание |
Ключевые экраны | Список экранов | Dashboard, Input, Result |
ИИ-функции | Что делает ИИ | Генерация текста |
Ограничения MVP | Чего не делаем | Нет сложных настроек |
Будущее развитие | Что добавим позже | История, шаблоны |
Блок ТЗ | Что пишет студент | Что генерирует Google AI Studio | Где используется |
Цель продукта | «Помогает маркетологам быстро генерировать рекламные тексты» | Общая логика приложения, смысл UI, роль ИИ | App Context |
Целевая аудитория | «Маркетологи, фрилансеры, малый бизнес» | Упрощённый UX, минимальные экраны, язык интерфейса | UI Screens |
Основной сценарий | «Ввести продукт → получить текст → сохранить результат» | User Flow, связка экранов | Structure / Flow |
Тип сервиса | «SaaS, web-приложение» | Архитектура: frontend + logic + data | App Structure |
Основные экраны | Login, Dashboard, Input, Result, History | Набор UI-экранов | UI Screens Tool |
Вводимые данные | Название продукта, ЦА, формат текста | Input-компоненты, формы | UI + Logic |
Действие ИИ | «Сгенерировать рекламный текст» | AI-функция / агент | Logic / Functions |
Результат | Текст, готовый к использованию | Result Screen + сохранение | UI + Data |
Хранение данных | История генераций | Таблицы данных | Data Tables |
Ограничения | Лимит запросов | Проверки, условия | Server Logic |
Что НЕ нужно детализировать | Почему |
Цвета и шрифты | UI можно доработать позже |
Точные размеры кнопок | Генерация идёт через компоненты |
Технические API-детали | AI Studio формирует их автоматически |
Архитектуру серверов | Важно только логическое описание |
Названия функций | Достаточно описать поведение |
Блок | Текст |
Название | AI Product Description Generator |
Цель | Быстро генерировать продающие описания товаров |
ЦА | Продавцы на маркетплейсах, малый бизнес |
Основной сценарий | Пользователь вводит данные товара → получает описание |
Тип сервиса | SaaS, web-приложение |
Экраны | Login, Dashboard, Input, Result, History |
Входные данные | Название товара, категория, преимущества, стиль |
Результат | Готовое описание товара |
ИИ | Генерация текста по шаблону |
Хранение | История генераций пользователя |
Элемент | Что должно появиться |
Экраны | 5 базовых экранов |
User Flow | Login → Dashboard → Input → Result |
Логика | Ввод → генерация → сохранение |
Роли | Пользователь |
Связи | UI ↔ Logic ↔ Data |
Экран | Назначение | Основной элемент |
Login | Авторизация | Кнопка входа |
Dashboard | Стартовая точка | CTA «Создать описание» |
Input | Ввод данных | Форма |
Result | Результат | Текст + кнопка «Сохранить» |
History | Повторное использование | Список |
Компонент | Описание |
Функция | generateDescription() |
Триггер | Нажатие кнопки |
Таблица | user_generations |
Поля | product, input, result, date |
Условия | Проверка лимитов |
Шаг | Что делает студент | Что описывает в AI Studio | Результат |
1 | Выбирает идею сервиса | «AI-ассистент, который помогает написать текст/проанализировать данные/дать рекомендацию» | Понимание задачи |
2 | Формулирует сценарий | «Пользователь вводит данные → нажимает кнопку → получает результат» | Чёткий user flow |
3 | Генерирует UI | «Форма ввода + кнопка + блок результата» | Рабочий интерфейс |
4 | Добавляет интерактивность | «При нажатии кнопки запускается обработка» | Приложение реагирует |
5 | Подключает AI | «Использовать Gemini для генерации ответа» | AI-функция |
6 | Добавляет данные | «Сохранять запрос и результат в таблицу» | История действий |
7 | Тестирует сценарий | «Проверь, что пользователь сразу видит результат» | Готовый MVP |
Вопрос | Да / Нет |
Пользователь понимает, что делать, за 3 секунды | ☐ |
Основное действие в приложении одно | ☐ |
Есть понятная точка входа (форма / кнопка) | ☐ |
После действия пользователь сразу видит результат | ☐ |
Интерфейс не перегружен лишними элементами | ☐ |
Логика работает без ошибок | ☐ |
AI-функция реально решает задачу пользователя | ☐ |
Данные обрабатываются или сохраняются | ☐ |
Сценарий можно объяснить одной фразой | ☐ |
Приложение не требует пояснений «что нажать» | ☐ |
Ситуация | Оставаться в Google AI Studio | Экспортировать приложение |
Проверка идеи / гипотезы | ✅ Да | ❌ Нет |
Прототип для себя или команды | ✅ Да | ❌ Нет |
Нужен быстрый MVP | ⚠️ Можно | ✅ Лучше |
Нужна авторизация пользователей | ❌ Нет | ✅ Да |
Нужна своя база данных | ❌ Нет | ✅ Да |
Подключение платежей | ❌ Нет | ✅ Да |
Контроль лимитов и затрат | ❌ Ограничено | ✅ Полный контроль |
Масштабирование | ❌ Нет | ✅ Да |
Коммерческий запуск | ❌ Нет | ✅ Обязательно |
Ошибка | Почему возникает | Как избежать |
Ключи в клиенте | Непонимание безопасности | Использовать env-переменные |
Нет лимитов | Фокус только на функционал | Rate-limit с первого дня |
Слишком сложная логика | Желание «сделать идеально» | Начать с 1 сценария |
Нет сценария пользователя | Думали про функции, а не людей | Описать user flow |
Нет логирования | «Работает и ладно» | Логи запросов и ошибок |
Нет контроля затрат | Не считали стоимость AI | Лимиты и алерты |
Слишком рано масштабируют | Нет подтверждённого спроса | Проверить MVP |
Шаг | Действие | Инструмент | Результат |
1 | Экспортировать проект из AI Studio | Google AI Studio | Исходный код |
2 | Загрузить проект в репозиторий | GitHub / Replit | Контроль версии |
3 | Подключить хостинг | Vercel | Онлайн-доступ |
4 | Добавить переменные окружения | Vercel Env Vars | Защита ключей |
5 | Подключить AI API | Gemini / OpenAI | Рабочий AI |
6 | Добавить лимит запросов | Middleware / Function | Контроль затрат |
7 | Ограничить пользователей | ID / IP / Session | Защита от абьюза |
8 | Протестировать сценарий | Браузер | Готовый MVP |
Блок | Вопрос для проверки | Да / Нет | Комментарий |
Ценность | Понятно ли, какую проблему решает сервис за 5 секунд? | ⬜ | Если нет — перепиши описание |
Первый шаг | Пользователь понимает, что делать сразу после входа | ⬜ | Нет «пустого экрана» |
Личный кабинет | Есть ли персональные данные пользователя | ⬜ | Даже минимальные |
Основная функция | Работает ли ключевая AI-функция без багов | ⬜ | Остальное вторично |
Скорость | Ответ AI ≤ 10–15 секунд | ⬜ | Иначе нужен loader |
Ошибки | Обрабатываются ли ошибки AI | ⬜ | Нет «молчаливых падений» |
Лимиты | Есть ли ограничение запросов | ⬜ | Хоть самое простое |
Сообщения | Пользователь понимает, что происходит | ⬜ | Ошибка ≠ паника |
Данные | Данные сохраняются корректно | ⬜ | История, результаты |
Публикация | Есть рабочий URL | ⬜ | Продукт доступен |
Что закладываем сразу | Зачем это делать на старте | Как реализовать в Bubble (просто) |
Подсчёт запросов пользователя | Контроль нагрузки и бюджета на AI | Поле requests_today у User + инкремент в workflow |
Ограничение бесплатного доступа | Формирование ценности и будущей монетизации | Условие: если лимит превышен → стоп / сообщение |
Точка входа для оплаты | Готовность к росту и деньгам | Поле plan (free / pro) + заглушка кнопки «Обновить тариф» |
Этап пользователя | Что он видит в продукте | Что происходит в логике | Зачем это нужно |
Первый вход | Бесплатный доступ без карты | План = free, лимит минимальный | Снизить барьер входа |
Использование | Быстро получает результат | Считаются запросы | Формируется ценность |
Подход к лимиту | Предупреждение «Осталось 2 запроса» | Условие по requests_today | Подготовка к оплате |
Превышение лимита | Экран с описанием тарифа | Блокировка AI-функции | Момент продажи |
Оплата | Кнопка «Разблокировать доступ» | Смена plan на pro | Монетизация |
После оплаты | Увеличенный лимит | Новый доступ без ограничений | Удержание пользователя |
Шаг | Куда заходить | Что нажимать | Что должно получиться |
0 | weweb.io | Create new project → Blank app | Пустой проект в редакторе |
1 | Pages | + New page | Созданы страницы: /login, /dashboard, /action, /result |
2 | Layouts | Create layout → AppLayout | Общий каркас для всех экранов |
3 | Pages | Назначить Layout странице | Все страницы используют один layout |
4 | Elements | Section → Text / Button / Container | Смысловой экран, не «каша» |
5 | Components | Create component → Button | Универсальная кнопка для всего приложения |
6 | Element → Actions | Add action → Navigate / Show / Hide | Интерфейс реагирует на действия |
7 | Data | Collections / External API | Подключены данные или заглушка |
8 | Text / List | Dynamic value | Элементы отображают данные |
9 | Preview | Preview / Run | Можно пройти сценарий пользователя |
Шаг | Куда заходить | Что нажимать | Что вводить / выбирать | Что должно получиться |
A1 | WeWeb Editor | Левая панель → Data | — | Открыт раздел работы с данными |
A2 | Data | Add data source | Выбрать Supabase или REST API | Создаётся источник данных |
A3 | Supabase | Вставить URL проекта | Project URL из Supabase | WeWeb видит базу |
A4 | Supabase | Вставить API Key | anon public key | Безопасное подключение |
A5 | Data | Create collection | Название, например requests | Коллекция данных создана |
A6 | Collection | Select table / endpoint | Таблица или API-метод | WeWeb знает структуру данных |
A7 | Collection | Map fields | Связать поля (id, text, result) | Поля доступны в интерфейсе |
Шаг | Куда заходить | Что нажимать | Что выбирать | Что должно получиться |
B1 | Page | Выделить Text / List | — | Элемент активен |
B2 | Правая панель | Content → Dynamic value | Source: Collection field | Текст берётся из БД |
B3 | Page | Добавить List / Repeater | — | Контейнер для списка |
B4 | List settings | Bind to collection | requests | Список данных отображается |
B5 | Preview | Run | — | Видны реальные данные |
Шаг | Куда заходить | Что нажимать | Что делать | Результат |
C1 | Elements | Добавить Loader | — | Loader на экране |
C2 | Loader | Visibility | По умолчанию скрыт | Не мешает UI |
C3 | Button | Actions → Add action | On click → Show Loader | Loader появляется |
C4 | Action chain | После запроса | Hide Loader | Loader исчезает |
Шаг | Куда заходить | Что нажимать | Что делать | Результат |
C5 | API action | On success | Navigate / Show block | Пользователь видит результат |
C6 | Text | Dynamic value | Результат запроса | Появляется ответ |
Шаг | Куда заходить | Что нажимать | Что делать | Результат |
C7 | Action | On error | Show error block | Ошибка не ломает UI |
C8 | Error block | Text | «Попробуйте позже» | Понятное сообщение |
C9 | Error block | Visibility | Только при ошибке | Нет лишних сообщений |
Шаг | Куда заходить | Что нажимать | Что делать | Результат |
D1 | Button | State | Disabled = true | Блокировка |
D2 | Workflow | Пока loading | Disable button | Нет двойных кликов |
D3 | On success / error | Enable button | — | Кнопка снова активна |
Шаг | Куда заходить | Что нажимать | Что вводить / выбирать | Что должно получиться |
1 | Pages | New page | /login | Страница логина |
2 | Elements | Input → Email | Placeholder: Email | Поле ввода email |
3 | Elements | Input → Password | Type: Password | Поле пароля |
4 | Elements | Button | Text: «Войти» | Кнопка входа |
5 | Components | Create component | LoginForm | Форма как компонент |
6 | Data | Add data source | Supabase Auth | Подключена авторизация |
7 | Button → Actions | Add action | Auth → Sign in | Запрос логина |
8 | Action → On success | Navigate | /dashboard | Переход после входа |
9 | Action → On error | Show error block | «Неверные данные» | Ошибка без краша |
10 | Elements | Loader | Hidden by default | Loader добавлен |
11 | Button → Actions | Show Loader | On click | Видна загрузка |
12 | Button → Actions | Hide Loader | On success/error | Loader исчезает |
13 | Pages | New page | /dashboard | Страница Dashboard |
14 | Data | Use current user | Email / ID | Данные пользователя |
15 | Text | Dynamic value | User.email | Имя пользователя |
16 | Page settings | Auth guard | Require auth | Защита страницы |
17 | Preview | Run | — | Полный сценарий работает |
Шаг | Где | Что нажать | Что настроить | Что происходит |
1 | WeWeb → Page | Button | Text: «Сгенерировать» | Кнопка действия |
2 | WeWeb → Elements | Textarea | Bind → user_input | Поле ввода |
3 | WeWeb → Data | Add data source | API / Supabase function | Источник AI |
4 | Button → Actions | Add action | Show loader | Показ загрузки |
5 | Button → Actions | API call | prompt = user_input | Отправка в AI |
6 | API | Request body | model, prompt | AI генерирует ответ |
7 | API → Response | Map response | ai_result | Получаем текст |
8 | Button → Actions | Hide loader | On success | Убираем загрузку |
9 | Button → Actions | Update variable | result = ai_result | Сохраняем в переменную |
10 | Button → Actions | Supabase → Insert | table: results | Сохраняем в БД |
11 | Supabase | Table results | user_id, prompt, result | Структура хранения |
12 | WeWeb → UI | Text block | Bind → result | Показ результата |
13 | Page logic | If error | Show message | Обработка ошибки |
14 | Optional | Rate limit | count requests | Защита бюджета |
Блок | Где настраивается | Что входит | Зачем |
Auth | Supabase | Email / Password | Пользователи |
Users | Supabase table | id, email, role | Связь данных |
Requests | Supabase table | user_id, prompt, result | История |
Limits | Supabase table | user_id, count, plan | Контроль запросов |
AI API | Supabase function | Gemini / GPT | Безопасный вызов |
Env keys | Supabase secrets | API_KEY | Защита ключей |
Frontend | WeWeb | Pages, actions | UI без кода |
Logic | WeWeb actions | API → Save → Show | Поведение |
Errors | WeWeb | Toast / Alert | UX |
Deploy | WeWeb hosting | Custom domain | Публикация |
Если тебе нужно | Лучше |
Только web, быстро | WeWeb / Webflow |
Web + iOS + Android | FlutterFlow |
Готовиться к масштабированию | FlutterFlow |
Один UI → все платформы | FlutterFlow |
Шаг | Куда заходить | Что нажимать | Что выбрать | Что должно получиться |
1 | flutterflow.io | Sign up / Login | Google / Email | Аккаунт |
2 | Dashboard | Create New | Blank App | Новый проект |
3 | Project settings | App Details | App name | Название |
4 | Platform | Web + Mobile | Enable both | Web + iOS + Android |
5 | Theme | Material | Default | Базовый UI |
6 | Save | Save project | — | Проект создан |
Шаг | Где | Что нажать | Что подключить | Результат |
1 | console.firebase.google.com | Create project | Default | Firebase-проект |
2 | Firebase | Add app | Web + Android + iOS | Все платформы |
3 | Firebase | Authentication | Email/Password | Авторизация |
4 | Firebase | Firestore | Start in test | БД |
5 | FlutterFlow | Settings → Firebase | Connect | Firebase связан |
6 | FlutterFlow | Auth | Enable auth | Auth готов |
7 | FlutterFlow | Firestore | Sync schema | Таблицы видны |
Шаг | Где | Что сделать | Настройки | Что получится |
1 | UI Builder | Add Page | Login Page | Экран |
2 | Widgets | Email field | Bind email | Поле |
3 | Widgets | Password field | Bind password | Поле |
4 | Widgets | Button | Login | Кнопка |
5 | Button | Add action | Firebase Auth → Sign in | Вход |
6 | On success | Navigate | Dashboard | Переход |
7 | On error | Snackbar | Error message | UX |
Коллекция | Поля | Зачем |
users | id, email, plan | Пользователи |
requests | user_id, prompt, result, created_at | История |
limits | user_id, count, limit | Контроль AI |
settings | flags, config | Фичи |
Что делает студент | Что делает FlutterFlow |
Собирает UI | Адаптирует под экраны |
Делает логику | Генерирует Flutter |
Настраивает Firebase | Вшивает SDK |
Публикует Web | Готовит mobile build |
Ошибка | Как выглядит | Почему происходит | Как исправить |
Авторизация не работает | Login жмётся, но не входит | Firebase Auth не включён | Firebase → Authentication → Enable Email/Password |
Данные не сохраняются | Firestore пустой | Нет правил доступа | Firestore Rules → разрешить доступ для auth users |
Кнопка ничего не делает | Нет реакции | Не добавлено Action | Button → Actions → Add Action |
Ошибка навигации | Белый экран | Не указан target page | Action → Navigate → выбрать экран |
Web работает, mobile нет | Ошибка сборки | Не добавлены платформы в Firebase | Firebase → Add Android / iOS app |
Приложение «тормозит» | Долгая загрузка | Запросы без фильтра | Firestore query → limit + where |
Пользователь видит чужие данные | Критичная ошибка | Нет user_id фильтра | Query → where user_id == current user |
Слой | Где реализуется | Что туда класть | Пример |
UI | FlutterFlow UI Builder | Экраны, кнопки | Login, Dashboard |
UX-логика | Actions | Переходы, ошибки | Snackbar, Redirect |
Auth | Firebase Auth | Пользователи | Email / Password |
Данные | Firestore | История, лимиты | requests, users |
AI-логика | Backend / API | Запросы к AI | prompt → result |
Контроль | Firestore + Logic | Лимиты, счётчики | requests_count |
Публикация | FlutterFlow / Hosting | Web + Mobile | Web URL |