Что такое Supabase и почему он идеален для AI-разработки
Supabase — это open-source альтернатива Firebase, построенная поверх PostgreSQL. Вместо проприетарной NoSQL-базы вы получаете полноценный PostgreSQL с REST API, авторизацией, хранилищем файлов, realtime-подписками и Edge Functions — всё в одном сервисе. Бесплатный тир включает 500 МБ базы данных, 1 ГБ хранилища и 50 000 запросов в месяц.
Для AI-разработки Supabase особенно удобен по трём причинам. Первая — декларативная настройка через SQL: AI-ассистент может создавать таблицы, индексы и политики безопасности простыми SQL-командами. Вторая — автоматический REST и GraphQL API: как только таблица создана, для неё уже есть API-эндпоинты. Третья — клиентская библиотека supabase-js с отличной TypeScript-типизацией, которую AI генерирует безошибочно.
Быстрый старт: создание проекта
Зайдите на supabase.com и создайте новый проект. Выберите регион ближе к вашей аудитории — для Казахстана оптимально Singapore или Frankfurt. Запишите URL проекта и anon key — они понадобятся для подключения клиента. Эти данные хранятся в .env.local вашего проекта и никогда не коммитятся в git.
Установка клиента
Попросите Claude Code установить @supabase/supabase-js и создать файл lib/supabase.ts с инициализацией клиента. Для Server Components используйте createServerClient из @supabase/ssr — он работает с cookies для авторизации. Для клиентских компонентов — createBrowserClient. Claude Code знает эту разницу и создаст правильные хелперы.
Создание таблиц через AI
Вместо ручного кликанья в Dashboard, попросите Claude Code написать SQL-миграции. Опишите бизнес-логику: "Нужна таблица пользовательских профилей, связанная с auth.users. Таблица проектов с владельцем. Таблица задач внутри проекта с приоритетом и статусом." Claude Code сгенерирует SQL с правильными типами, внешними ключами и индексами.
Пример структуры для таск-менеджера
AI создаст таблицу profiles с полями id (ссылка на auth.users), full_name, avatar_url, created_at. Таблицу projects с id, title, description, owner_id, created_at. Таблицу tasks с id, project_id, title, description, status (enum: todo, in_progress, done), priority (enum: low, medium, high), assignee_id, due_date, created_at. Плюс необходимые индексы на часто фильтруемые поля.
Выполните SQL прямо в Supabase SQL Editor или через CLI supabase db push. Claude Code может подключиться к Supabase через MCP-сервер и выполнять SQL-запросы напрямую — без переключения между инструментами.
RLS-политики: безопасность на уровне строк
Row Level Security — это киллер-фича PostgreSQL, которую Supabase делает доступной из коробки. RLS позволяет задать правила: какие строки может видеть и изменять конкретный пользователь. Без RLS любой пользователь с anon key может прочитать все данные — это очевидная дыра в безопасности.
Базовые политики
- SELECT: пользователь видит только свои проекты (WHERE owner_id = auth.uid())
- INSERT: пользователь может создавать проекты только от своего имени
- UPDATE: только владелец может редактировать проект
- DELETE: только владелец может удалить проект
- Задачи: участники проекта видят все задачи проекта, но редактируют только свои
Попросите Claude Code написать RLS-политики для всех таблиц. Он создаст SQL с ALTER TABLE ... ENABLE ROW LEVEL SECURITY и CREATE POLICY для каждой операции. Протестируйте через Supabase Dashboard — переключитесь на anon role и убедитесь, что без авторизации данные недоступны.
Авторизация за 5 минут
Supabase Auth поддерживает email/password, magic link, OAuth (Google, GitHub, Apple, Discord и другие), phone OTP. Для MVP достаточно email/password. Попросите Claude Code создать страницы входа и регистрации с вызовами supabase.auth.signUp() и supabase.auth.signInWithPassword(). Supabase сам отправит email подтверждения, управляет сессиями и рефреш-токенами.
OAuth-провайдеры
Для Google OAuth: создайте проект в Google Cloud Console, настройте OAuth Consent Screen, создайте credentials и добавьте client_id/secret в Supabase Dashboard в разделе Authentication → Providers. После этого supabase.auth.signInWithOAuth вызов на клиенте автоматически перенаправит пользователя на Google и вернёт обратно с авторизацией.
Claude Code может пошагово провести вас через настройку каждого провайдера. Просто скажите: "Настрой Google авторизацию для Supabase" — и получите инструкцию с кодом и конфигурацией.
Storage: хранение файлов
Supabase Storage — это S3-совместимое хранилище для файлов. Создайте бакет через Dashboard или SQL. Бакеты бывают публичные (аватарки, картинки) и приватные (документы, отчёты). Для каждого бакета настраиваются RLS-политики — точно так же, как для таблиц.
- supabase.storage.from("avatars").upload() — загрузка файла
- supabase.storage.from("avatars").getPublicUrl() — получение публичной ссылки
- supabase.storage.from("documents").download() — скачивание приватного файла
- Трансформации изображений: ресайз, кроп, формат — параметрами в URL
- Лимиты: размер файла, типы MIME, максимальное количество — настраиваются через политики
Realtime: живые обновления
Supabase Realtime позволяет подписаться на изменения в таблицах через WebSocket. Когда другой пользователь создаёт задачу или меняет статус — ваш интерфейс обновляется мгновенно, без перезагрузки и polling. Это особенно ценно для совместной работы: таск-борды, чаты, документы.
Подписка на изменения
Попросите Claude Code создать хук useRealtimeTasks, который подписывается на таблицу tasks и обновляет состояние при INSERT, UPDATE, DELETE. Код использует supabase.channel("tasks").on("postgres_changes", ...).subscribe(). При размонтировании компонента подписка автоматически отключается — Claude Code знает про cleanup в useEffect.
Подключение через AI-промпты
Самое мощное — использование MCP-сервера для Supabase. Подключив его к Claude Code, вы можете управлять базой данных голосом: "Создай таблицу orders с полями...", "Добавь RLS-политику для таблицы...", "Покажи последние 10 записей из...". AI выполняет SQL напрямую и показывает результаты в терминале.
Для разработки это означает нулевое переключение контекста. Вы работаете с кодом, и когда нужно изменить схему — просто говорите Claude Code. Он создаст миграцию, обновит типы, поправит код, который зависит от изменённых полей. Один промпт — и всё синхронизировано.
Типовая архитектура Supabase-приложения
Итоговая архитектура выглядит так: Next.js фронтенд общается с Supabase через supabase-js. Авторизация через Supabase Auth, данные в PostgreSQL с RLS, файлы в Storage, живые обновления через Realtime. Edge Functions (Deno) для серверной логики, которая не помещается в Next.js API Routes — например, вебхуки платёжных систем или обработка очередей.
Supabase + AI — это самый быстрый путь от идеи до работающего приложения с продакшен-уровнем безопасности. Вместо недели настройки бэкенда вы тратите 30 минут — и получаете базу данных с API, авторизацией, файловым хранилищем и realtime-подписками. AI-ассистент делает этот путь ещё быстрее, генерируя SQL, код клиента и RLS-политики из описания бизнес-логики на естественном языке.