Каталог-справочник без кода: как собрать его нейросетью
Каталог-справочник без кода собирается по описанию: какие объекты в нём лежат, какие поля есть у карточки и по чему пользователь фильтрует. Zugo генерирует список, карточки, поиск и фильтры, проверяет сборку в песочнице и публикует по ссылке. Записи живут либо прямо в сборке, либо в подключённой базе.
Каталог кажется простым проектом ровно до момента, когда в него нужно добавить сотую запись. Дальше всё решает не дизайн карточки, а то, где эти записи хранятся и кто их вносит.
Чем справочник отличается от обычного списка?
Списком можно назвать любую страницу с перечислением. Справочником он становится, когда у записей появляется одинаковая структура и по ней можно искать.
Признаков три. У каждой записи один и тот же набор полей, а не свободный текст. Есть способ сузить выборку: категория, город, цена, тег. И есть страница отдельной записи, на которую можно дать ссылку.
Отсюда следует практический вывод. Прежде чем писать промпт, соберите десять настоящих записей в таблице. Не придуманных, а тех, которые вы реально хотите опубликовать. Поля, которые вы заполните у всех десяти, и есть структура карточки. Поля, которые заполнились у двух из десяти, в карточку не идут: они превратятся в пустые места и сломают вид списка.
Типовые справочники, которые собирают чаще всего: подборка сервисов или инструментов в нише, каталог мастеров и специалистов по городу, список мероприятий, база курсов, реестр компаний отрасли, подборка вакансий, каталог локаций для съёмок.
Из чего состоит карточка в справочнике?
Из полей двух типов, и их полезно разделять с самого начала.
Первый тип это поля для фильтрации: категория, город, ценовой диапазон, формат, теги. Они короткие, повторяются и берутся из закрытого списка значений. Именно они превращают страницу в справочник. Если вы позволите вносить их свободным текстом, через месяц в базе окажутся «Москва», «москва» и «г. Москва», и фильтр перестанет работать.
Второй тип это поля для чтения: описание, фото, ссылка на сайт, контакты, цена, часы работы. Они живут внутри карточки и не участвуют в отборе.
| Поле | Тип | Зачем |
|---|---|---|
| Название | Чтение | Заголовок карточки и страницы |
| Категория | Фильтр | Главный способ сузить выборку |
| Город или район | Фильтр | Второй по частоте запрос пользователя |
| Короткое описание | Чтение | Строка в списке, чтобы не открывать карточку |
| Ссылка на источник | Чтение | Ради неё справочник и открывают |
| Теги | Фильтр | Уточнение внутри категории |
| Дата обновления | Чтение | Признак того, что справочник живой |
Последняя строка недооценена. Справочник без даты обновления читается как заброшенный, даже если вы правили его вчера.
Какой промпт написать для каталога?
Опишите объект, поля и способы отбора, а не «сделай каталог». Заготовка:
Каталог-справочник: [что собираем, например студии звукозаписи города].
Карточка записи: название, категория, район, короткое описание,
цена от, телефон, ссылка на сайт, фото, теги, дата обновления.
Категории: [список].
Разделы:
1. Первый экран: что за справочник, сколько в нём записей, строка поиска.
2. Список: карточки с фото, названием, категорией, районом и ценой от.
3. Фильтры: категория, район, цена, теги. Работают вместе.
4. Страница записи: все поля, ссылка на источник, кнопка «сообщить об ошибке».
5. Форма «добавить запись»: заявка приходит мне на почту.
Сортировка по умолчанию: сначала недавно обновлённые.
Пустая выдача показывает подсказку, а не пустоту.
Последние две строки экономят целый раунд правок. Каталог без явной сортировки собирается в том порядке, в котором вы перечислили записи, а пустой результат фильтра без подсказки выглядит как поломка.
Где хранить записи: в сборке или в базе?
Два маршрута, и выбор зависит от того, кто и как часто вносит записи.
Прямо в сборке. Записи лежат в коде проекта, изменения вносятся правкой в чате: «добавь в каталог студию Х со всеми полями». Просто, дёшево, ничего не настраивается. Разумно до нескольких десятков записей, которые меняются редко и вносите их только вы.
В базе через коннектор Supabase. Записи лежат в вашей таблице Postgres, сайт их читает. Появляется возможность вносить их не через сборку, а прямо в базе, подключить вход для редакторов и выгрузить всё в CSV. Как это подключается, разобрано в гайде про AI-приложение с Supabase.
Практическое правило простое. Пока справочник наполняете вы один и записей меньше пятидесяти, база лишняя. Как только записи начинают вносить другие люди или их становится больше, переезд в базу окупается на первой же неделе.
Как принимать и модерировать новые заявки?
Форма «добавить запись» превращает справочник из вашего личного списка в проект, который растёт сам. Но публиковать заявки без проверки нельзя: справочник ценен именно тем, что кто-то проверил записи.
Рабочая схема на старте самая простая. Форма собирает поля и отправляет письмо вам через коннектор Resend. Вы читаете, проверяете ссылку и добавляете запись сами. Это ручная работа, но она честно масштабируется до нескольких заявок в день и не требует ничего настраивать.
Следующий уровень это база со статусом записи: «на модерации» и «опубликовано». Сайт показывает только опубликованные, вы меняете статус в дашборде Supabase. Здесь уже видно, что каталог со временем становится небольшим внутренним инструментом, и логика у него та же, что у доски обратной связи или у внутреннего сервиса компании.
Ещё одна кнопка, которую стоит поставить сразу: «сообщить об ошибке» на странице записи. Справочники устаревают тихо, и читатели замечают это раньше владельца.
Сколько стоит собрать справочник?
Кредиты списываются за действие. Одностраничная сборка стоит 6 кредитов. Многостраничный проект считается как платформа: 12 кредитов за первые три страницы и по 3 за каждую следующую. Правка стоит 3.
| Что собираем | Страниц | Кредитов |
|---|---|---|
| Список с фильтрами на одной странице | 1 | 6 |
| Главная, Список, Страница записи | 3 | 12 |
| Плюс форма добавления и раздел о проекте | 5 | 18 |
| Одна правка, например добавить фильтр по цене | нет | 3 |
Режим Hi-Fi удваивает эти числа: сборка 12, правка 6. Free даёт 5 кредитов, этого не хватает даже на одну сборку. Pro стоит $25 в месяц и даёт 200 кредитов. Business стоит $99 в месяц.
Как сделать так, чтобы справочник находили?
У каталога есть преимущество перед обычным сайтом: он отвечает на длинные конкретные запросы вроде «студии звукозаписи с барабанной комнатой в [район]». Но работает это только при одном условии: у каждой записи должна быть своя страница со своим адресом.
Каталог, где все записи живут в одном списке и открываются во всплывающем окне, выглядит современно и не находится вообще. Никакая запись не имеет отдельного адреса, значит на неё нельзя ни сослаться, ни попасть из поиска.
Отсюда три требования, которые стоит заложить в промпт с самого начала. Отдельная страница на каждую запись с говорящим адресом. Осмысленный заголовок страницы, где есть название записи и категория. Страница на каждую категорию, а не только общий список с фильтром, потому что именно категорию чаще всего и ищут.
Четвёртое требование про содержание: пишите своё описание записи, а не копируйте текст с сайта компании. Каталог из чужих описаний это набор дубликатов, у которого нет причин занимать чьё-то место в выдаче.
Чего такой каталог не сделает?
Три границы, о которых лучше знать заранее.
Он не наполнит себя данными. Билдер соберёт интерфейс справочника, но записи собираете вы. Это основная работа в проекте, и она не автоматизируется промптом.
Он не потянет десятки тысяч записей без проектирования. Каталог на пару тысяч строк с фильтрами работает нормально. Большая база с полнотекстовым поиском, картой и постраничной выдачей требует нескольких раундов правок и разработчика рядом, если нагрузка серьёзная.
Он не решит вопрос авторских прав на контент. Собирать чужие описания и фотографии в свой справочник это юридическое решение, а не техническое. Ссылка на источник и собственный текст описания снимают большую часть риска.
Если справочник в итоге разрастается до сайта с разделами, статьями и страницами категорий, полезен отдельный разбор про многостраничный сайт нейросетью.
С чего начать?
Соберите десять настоящих записей в таблице, выпишите поля, которые заполнились у всех десяти, и опишите каталог одним абзацем. Первая сборка покажет, работает ли ваша структура, честнее любого плана. Опубликуйте её, поживите с ней неделю и добавьте фильтры, которых не хватило. Начать можно на zugo.dev.