лооооч
Урок 6

Кладовка, которая помнит

добавляем живой блок — форму, которая запоминает сообщения в базе

Цели урока

К концу этого урока вы:

  • Поймёте, почему обычная страница забывает всё при перезагрузке — и что с этим делать.
  • Разберётесь, что такое база данных на практике: таблица, строка, запись — без страха и терминологии.
  • Узнаете, как подключить бесплатный Postgres к проекту через Vercel Marketplace.
  • Проследите полный путь данных: форма → сервер → база → страница.
  • Попросите Claude Code добавить гостевую книгу — и убедитесь, что она помнит записи после перезагрузки.
Гравитация

Так. Вот этот момент не проскакивай, он ключевой.

Урок 6 из 10

Кладовка, которая помнит

добавляем живой блок — форму, которая запоминает сообщения в базе
Уютная кладовка с аккуратными полками и подписанными банками: каждая полка — отдельная таблица, каждая банка — одна запись

Вы открываете страницу, заполняете форму — имя, сообщение, нажимаете «Отправить». Смотрите: данные на экране, всё хорошо. Нажимаете F5 — обновление. Данные исчезли, как будто ничего не было. Чистый бланк, пустое поле. Страница забыла всё, что вы ей говорили.

Это не ошибка — это нормальное поведение обычной веб-страницы. Она живёт только пока открыта, как разговор по телефону: положил трубку — разговор кончился, слова нигде не записаны. Чтобы страница помнила — нужно отдельное место для хранения. В мире веб-разработки это место называется база данных. В нашей карте дома из Урока 1 — это кладовка.

Сегодня добавим кладовку к нашему проекту и научим форму туда писать.

🧠 Сначала достаньте из памяти — без подглядывания
Из Урока 5 (вчера): когда Claude Code делает коммит — что именно он фиксирует и зачем это важно?

Из Урока 3 (три урока назад): вы выбирали инструмент для работы — чем они принципиально различались?

Из Урока 2 (четыре урока назад): из каких частей состоит хорошая инструкция для Claude Code — можете назвать хотя бы три?
Не подглядывайте пока — запишите или скажите вслух. Проверите себя по ходу этого урока: обратные ссылки расставлены.

Что вы возьмёте из этого урока

  • Поймёте, почему обычная страница забывает всё при перезагрузке — и что с этим делать.
  • Разберётесь, что такое база данных на практике: таблица, строка, запись — без страха и терминологии.
  • Узнаете, как подключить бесплатный Postgres к проекту через Vercel Marketplace.
  • Проследите полный путь данных: форма → сервер → база → страница.
  • Попросите Claude Code добавить гостевую книгу — и убедитесь, что она помнит записи после перезагрузки.

Где мы сейчас

Урок 1 — Пустой участок Что строим, кто прораб, Claude Code в руках
Урок 2 — Как говорить Анатомия хорошей инструкции, первый каркас
Урок 3 — Чем строить Обзор инструментов, выбор своего
Урок 4 — Каркас и стены Страница-визитка собрана, видна в браузере
Урок 5 — Файлы и коммиты Что писал ИИ, git как «сохранёшки»
Урок 6 — Кладовка База данных, форма, которая помнит

Часть 1. Почему страница ничего не помнит

Когда вы открываете любую страницу в браузере — браузер скачивает с сервера набор файлов: текст, картинки, скрипты. Показывает их вам. Всё, что происходит после — живёт только в вашем браузере, в оперативной памяти вашего компьютера. Когда вы нажимаете F5 — браузер скачивает файлы заново, с чистого листа. То, что вы вписали в форму, нигде не сохранялось — оно было только в памяти, которую браузер вычистил при перезагрузке.

Это не недостаток — это осознанное устройство. Страница по умолчанию stateless, то есть без состояния: каждый визит начинается с нуля. Именно поэтому, кстати, формы на обычных сайтах иногда «сбрасываются», если случайно нажать «Назад» в браузере. Всё понятно: данные нигде не лежали.

Представьте официанта без блокнота. Он подходит, вы говорите заказ. Пока он стоит рядом — помнит. Отошёл к другому столику на минуту — забыл. Вы повторяете заказ. Чтобы заказ не потерялся, нужно записать его в блокнот — физическое место, которое живёт независимо от разговора.

В нашем доме: обычная страница — это официант без блокнота. База данных — это блокнот. А лучше — целая кладовка с полками, где каждый заказ аккуратно подписан и лежит на своей полке, пока не понадобится.

Часть 2. Что такое база данных — кладовка с полками

В Уроке 1 мы дали базе данных короткое определение: кладовка. Теперь раскроем его подробнее — ровно настолько, чтобы уверенно разговаривать с Claude Code.

База данных — это программа, которая живёт на сервере и умеет одно главное: надёжно хранить данные и быстро их находить. Не в файле (файл можно потерять, перезаписать, он не рассчитан на одновременный доступ от многих людей) — а в структуре, где у каждой информации есть своё место и адрес.

Внутри база устроена как таблица — или много таблиц. Таблица = полка. На ней хранятся записи одного типа: например, все сообщения из гостевой книги. Строка в таблице = одна запись: одно сообщение, с именем автора, текстом и датой. Вот и вся структура, которую нужно знать для нашего проекта.

Кладовка с тремя полками: на первой полке аккуратные банки подписаны 'сообщения из формы', на второй — 'подписчики', на третьей — 'контакты'; каждая банка — одна запись
Кладовка-база: каждая полка — отдельная таблица (тип данных), каждая банка — одна запись

Конкретно для нашей гостевой книги таблица будет выглядеть примерно так:

idnamemessagecreated_at
1МашаОтличная страница!2026-06-01 14:23
2АлексейПривет, узнал о тебе от Ани.2026-06-01 18:05
3АнонимКрасивый дизайн.2026-06-02 09:11

Четыре колонки. Каждая строка — одно сообщение. Добавили новое — появилась четвёртая строка. Обновили страницу — строки никуда не делись: они в кладовке, а не в браузере.

🤔 Угадайте раньше, чем дочитаете
Если таблица — это полка, а строка — одна запись, то что тогда колонка? Придумайте своё объяснение этой аналогии, прежде чем читать дальше. Подсказка: посмотрите на таблицу выше.
Колонка — это свойство каждой записи: как ярлык на банке. У каждого сообщения есть имя, текст, дата — это три ярлыка, три колонки. Когда вы говорите Claude Code «добавь поле email» — вы просите добавить ещё один ярлык.

Часть 3. Какую базу берём и почему бесплатно

Мы используем PostgreSQL (или просто Postgres) — надёжную базу данных с открытым кодом, которой больше тридцати лет [1]. Не потому что это единственный вариант — а потому что Vercel, наш будущий хостинг (подробнее — в Уроке 7), предлагает её бесплатно через встроенный магазин.

Как это устроено: в Vercel есть Marketplace — что-то вроде магазина приложений, только для рабочих инструментов. Там можно одним кликом подключить базу данных, почту, мониторинг. Для нас важна одна позиция: Neon Postgres — управляемый Postgres с бесплатным тарифом [2]. Нажали «подключить» — база готова, настройки автоматически попадают в ваш проект. Вы не настраиваете сервер, не придумываете пароли, не читаете документацию по установке.

Важно знать: в 2024 году Vercel отключил продукт под названием «Vercel Postgres» как самостоятельный сервис — теперь бесплатная база идёт через Marketplace именно как Neon [2]. Называть это «Vercel Postgres» неточно — правильно «Neon через Vercel Marketplace».

Бесплатный тариф Neon включает 0,5 ГБ хранения и достаточно вычислительных ресурсов для пет-проекта [2]. Для гостевой книги этого хватит с запасом: тысяча сообщений занимает примерно несколько мегабайт.

🧹
— Подождите, база данных — это звучит сложно. Может, просто сохраним в текстовый файл?
— Можно. А потом два человека одновременно напишут в гостевую, файл перезапишется, одно сообщение пропадёт. Вы сообщите им или файл сам разберётся?
Файл — для записок себе. База данных — для всего, к чему обращаются одновременно несколько человек, даже если их двое.

Часть 4. Подключаем базу: вы — заказчик, Claude Code — строитель

Весь технический процесс подключения базы Claude Code делает сам. Ваша работа — сказать ему что нужно и в какой последовательности. Вот как выглядит разговор прораба со строителем.

Шаг 1. Создайте аккаунт на Vercel и подключите проект

Если Vercel ещё не подключён — зарегистрируйтесь на vercel.com и свяжите проект с репозиторием (подробнее разберём в Уроке 7). Пока достаточно аккаунта — даже без деплоя база будет работать локально.

Шаг 2. Добавьте Neon через Vercel Marketplace

В панели Vercel — раздел Storage → Create Database → Neon. Нажмите «Add», выберите регион (Frankfurt или ближайший), подтвердите. Готово: база создана, строка подключения автоматически попадёт в переменные окружения проекта.

Шаг 3. Попросите Claude Code подключить базу к коду

Теперь — ваша очередь. Скажите Claude Code словами, как в Уроке 2 [см. Урок 2] учились: чётко, с контекстом и ожидаемым результатом. Пример формулировки ниже.

# Что вы говорите Claude Code (своими словами):
У меня подключена база данных Postgres через Vercel Marketplace (Neon).
Переменная подключения уже есть в окружении.
Добавь гостевую книгу: таблицу messages с полями
name, message и created_at.
Сделай форму на главной странице — имя и сообщение.
После отправки форма должна сохранять запись в базу.
Под формой покажи все сохранённые сообщения, от новых к старым.
Проверь локально, что всё работает.

Claude Code знает Next.js [3] и Postgres — он сам напишет код, создаст таблицу и подключит форму. Вы смотрите на результат в браузере, пишете сообщение, обновляете страницу — сообщение остаётся. Кладовка работает.

Про «переменную окружения». Это адрес и пароль для подключения к базе — длинная строка вроде postgresql://user:password@host/db. Vercel хранит её отдельно от кода — чтобы пароль не попал на GitHub. Claude Code умеет её прочитать сам, вам не нужно её нигде вставлять вручную. Коммит из Урока 5 — вот почему важно не класть такие строки в файлы: прораб следит, чтобы секреты оставались в кладовке, а не лежали на виду.

Часть 5. Путь данных: форма → сервер → база → экран

Давайте пройдём этот путь шаг за шагом — медленно, чтобы каждый шаг стал понятным. Ничего нового не добавляется: только то, что уже знаете, составленное вместе.

Форма Маша пишет отправить Сервер принимает сохранить База данных (кладовка) запись добавлена Экран список сообщений отдаёт Сервер собирает страницу запрос База данных возвращает список ↑ путь записи ↓ путь чтения После перезагрузки браузер запрашивает страницу заново — сервер читает из базы, сообщения на месте.
Два маршрута: верхний — запись данных (форма → база), нижний — чтение (браузер → сервер → база → экран)

Заметьте: браузер не разговаривает с базой напрямую. Он разговаривает с сервером, а сервер — с базой. Это сделано специально: так база защищена, к ней нет прямого доступа снаружи. Сервер — посредник, он проверяет, что запрос корректный, и только тогда идёт в кладовку.

📝 Проверьте себя
Маша обновила страницу — её сообщение осталось на экране. Какой именно шаг на диаграмме выше сделал это возможным? Назовите его, прежде чем читать следующий абзац.
Нижний маршрут: браузер запросил страницу → сервер читает из базы → список сообщений возвращается → браузер показывает. Именно это и отличает «живой» блок от статичной страницы.

Часть 6. Виджет: проверьте, что поняли поток данных

Теперь сложите схему самостоятельно. Ниже — виджет: перетащите шаги в правильном порядке. Это не тест на скорость — подумайте перед тем, как расставлять.

Ориентир для самопроверки. Правильный порядок записи: браузер отправляет форму → сервер получает данные → сервер пишет в базу → база подтверждает. Правильный порядок чтения: браузер запрашивает страницу → сервер спрашивает базу → база возвращает список → сервер отдаёт страницу с данными → браузер показывает.

Резюме

1

Страница без базы — официант без блокнота

Всё, что вписано в форму, живёт только в памяти браузера. Обновление — и исчезло. Чтобы данные жили — нужна отдельная кладовка.

2

База = кладовка с полками

Таблица — полка (один тип данных). Строка — одна запись (одно сообщение). Колонка — ярлык на банке (имя поля: name, message, created_at).

3

Postgres бесплатно через Vercel Marketplace

Neon — управляемый Postgres, подключается парой кликов, бесплатного тарифа хватает для пет-проекта. Claude Code подключает его к коду.

4

Путь данных: туда и обратно

Форма → сервер → база (запись). Браузер → сервер → база → экран (чтение). Браузер с базой напрямую не разговаривает — сервер посередине.

Что дальше, в Уроке 7 — «Выбираем адрес»: база готова, страница помнит сообщения. Следующий вопрос: где это всё должно жить, чтобы любой человек по ссылке мог открыть? Разберём хостинг: что это такое, что значит «бесплатный тариф» и в чём честно подвох, почему начнём с Vercel и на что обратить внимание в альтернативах.

Источники / Sources

  1. docs The PostgreSQL Global Development Group. «About PostgreSQL» — история и описание СУБД PostgreSQL. postgresql.org/about/ · accessed 2026-06-02
  2. docs Vercel. «Postgres on Vercel» — описание подключения Neon Postgres через Vercel Marketplace; история перехода от продукта «Vercel Postgres» к Neon-интеграции; бесплатный тариф Neon (0,5 ГБ хранения, 100 CU-часов). vercel.com/docs/postgres · accessed 2026-06-02
  3. docs Vercel. «Next.js Documentation» — документация по Next.js: API Routes, серверные компоненты, работа с базами данных. nextjs.org/docs · accessed 2026-06-02
  4. docs Neon. «Neon for Vercel» — страница интеграции Neon с Vercel Marketplace; детали бесплатного тарифа. vercel.com/marketplace/neon · accessed 2026-06-02
Бесплатные лимиты Neon и Vercel актуальны на июнь 2026; тарифы и условия могут меняться — проверяйте на официальных страницах перед принятием решений.