Управління контентом
CMS Proyecta — це основний рівень даних вашого застосунку, а не лише блог і маркетингові тексти, а й реальні записи, на яких він побудований. Колекції створюються та наповнюються реальним зразковим контентом до того, як з’являється інтерфейс, тому ваш застосунок одразу з першого білду підключений до редагованих даних.
Більшість застосунків Proyecta зберігають дані у вбудованій CMS. Коли ви описуєте свій застосунок, Proyecta проєктує модель даних, створює потрібні колекції та наповнює їх реалістичним зразковим контентом — і все це до того, як збудована хоч одна сторінка. Сторінки потім зчитують цей реальний, доступний для редагування власником контент через типізовані хуки, які AI підключає за вас. Щоб зрозуміти загальну картину того, як це все поєднується, дивіться Як працюють дані вашого застосунку.
Щоб розпочати, вам не потрібно про це думати — все відбувається автоматично. Ця сторінка пояснює, що відбувається всередині, щоб ви могли це налаштовувати.
Колекції та синглтони
Section titled “Колекції та синглтони”Контент організовано у колекції та синглтони:
| Тип | Що це таке | Приклади |
|---|---|---|
| Collection | Тип контенту з багатьма записами — одна схема, багато рядків. | posts, services, testimonials, catalogItems |
| Singleton | Тип контенту рівно з одним записом — глобальний, унікальний контент. | businessInfo, seoSettings |
Колекція — це форма; кожен запис є одним елементом цієї форми (один пост у блозі, одна послуга, одне питання FAQ). Синглтон містить один редагований запис — вашу бізнес-ідентичність або текст головного екрана чи секції сторінки.
Які типи контенту існують
Section titled “Які типи контенту існують”Proyecta постачається з готовими дизайнами колекцій — продуманими полями, підказками для адмін-панелі та стартовим контентом — для типів записів, які реально використовують підприємства: публікації в блозі та статті, послуги, каталог товарів, меню страв, відгуки, члени команди, фотогалерея, FAQ, події, локації, завантажувані матеріали, вакансії, курси, тури та оголошення про розміщення, та інші.
Вам не потрібно нічого вибирати з меню. Коли ви описуєте свій застосунок, Proyecta сам обирає те, що відповідає вашому бріфу — тип бізнесу, запрошені функції, мова — і створює колекції, наповнені реалістичним зразковим контентом. Якщо вашому застосунку потрібно щось, чого не охоплює жодна з них, Proyecta проєктує кастомну колекцію з власними полями.
Саме тому ваша адмін-панель показує колекції вашого застосунку, а не фіксований список. Вона будується на основі живої контентної моделі вашого застосунку, тому все, що Proyecta створив для вас — вбудоване або кастомне — саме це ви бачите й редагуєте. Два застосунки Proyecta рідко мають однаковий набір колекцій, і це зроблено навмисно.
Кожна колекція складається з типізованих полів. Типи полів застосовуються наскрізно — адмін-панель відображає відповідний редактор, а ваші сторінки отримують правильно типізовані значення.
| Тип поля | Для чого використовувати |
|---|---|
string |
Короткі однорядкові значення — заголовки, імена, адреси. |
text |
Абзац простого тексту. |
markdown |
Довгий форматований текст — тіло статті, текст розділу «Про нас». |
slug |
Ідентифікатор URL, автоматично похідний від іншого поля (наприклад, заголовка). |
number |
Лічильники, рейтинги, тривалість. |
money |
Ціна або грошова сума — відображається та редагується як валюта. |
boolean |
Прапорці увімк./вимк. |
date |
Календарні дати. |
datetime |
Мітки часу — дати публікації, час початку події. |
weeklyHours |
Години роботи для кожного дня тижня. |
asset |
Зображення, відео або PDF (зберігається як публічний URL). |
reference |
Посилання на запис в іншій колекції. |
enum |
Значення з фіксованого списку варіантів. |
array |
Список рядків — теги, номери телефонів, зони. |
blocks |
Блоки контенту, що складаються один на одного — сторінка з типізованих секцій. |
json |
Структуровані дані, що не підходять до жодного з наведених типів. |
Записи, чернетки та публікація
Section titled “Записи, чернетки та публікація”Запис — це один елемент колекції. Кожен запис має статус:
- Draft — робочий варіант; ніколи не відображається на вашому живому сайті.
- Published — опублікований і видимий відвідувачам.
- Archived — виведений з обігу, прибраний з основного вигляду.
Ваші публічні сторінки бачать лише опубліковані записи — чернетки та архівні елементи приховуються автоматично, тому ви можете безпечно готувати контент до його публікації.
Керування контентом (без коду)
Section titled “Керування контентом (без коду)”Є два способи додавати та редагувати контент — жоден не вимагає роботи з кодом:
- Попросіть AI у чаті. Просто опишіть зміну, і він відредагує потрібний контент за вас:
"Add a testimonial from María González: 'Best service in town', 5 stars.""Change the tagline in Business Info to 'Café de especialidad en la Roma'.""Mark the last five contact-form submissions as read."
- Адмін-панель вашого застосунку. Кожен опублікований застосунок отримує вбудовану, захищену входом адмін-панель, де ви (та персонал, якому ви надаєте доступ) керуєте контентом і надісланими формами безпосередньо — редактор у стилі таблиці для кожної колекції плюс папка вхідних для надісланих форм. Вона налаштовується на основі живої контентної моделі вашого застосунку, тому нові колекції з’являються там автоматично. Дивіться Admin Panel.
Керуйте контентом CMS через адмін-панель вашого застосунку або AI — редактор контенту у builder є в дорожній карті (дивіться Незабаром). Браузер записів у реальному часі для застосунків із live-оновленнями незабаром буде доступний.
Як ваш застосунок зчитує контент
Section titled “Як ваш застосунок зчитує контент”Ваші сторінки зчитують контент через набір типізованих хуків у @/hooks/useContent — і AI сам пише це підключення за вас. Ви описуєте сторінку; Proyecta генерує компоненти, які викликають ці хуки до ваших реальних колекцій. Ви рідко торкаєтеся їх самостійно, але ось що вони роблять:
| Хук | Що робить |
|---|---|
useCollection('posts') |
Повертає список опублікованих записів колекції (з опціональним фільтром/сортуванням/лімітом). |
useEntry('posts', slug) |
Отримує один опублікований запис за slug (сторінки деталей). |
useSingleton('businessInfo') |
Зчитує синглтон (інформацію про бізнес, контент сторінки). |
useFormSubmit('contactForm') |
Надсилає форму та повідомляє про помилки валідації. |
// A blog index — exactly the kind of code the AI generates for youimport { useCollection } from '@/hooks/useContent';
function BlogList() { const { data: posts, isLoading } = useCollection('posts', { sort: 'published_at:desc' }); if (isLoading) return <Spinner />; return posts?.map((post) => <PostCard key={post._id} post={post} />);}Коли Proyecta генерує типізовані інтерфейси для ваших колекцій, хуки стають повністю типізованими (useCollection<Post>('posts')), тому ваш редактор автодоповнює кожне поле. Зчитування гідратується при першому відображенні із запеченого снімка — сторінки рендеряться миттєво і зручно для SEO, а потім у фоні оновлюються в реальному часі.
Форми — це першокласна можливість, а не щось, що AI будує вручну. Додайте блок форми, і він відобразить поля, валідує введення, надішле дані та покаже стан успіху:
<FormBlock form="contactForm" />Форми також постачаються готовими — контактна форма, запит комерційної пропозиції, форма бронювання, форма замовлення, форма реєстрації — і Proyecta підключає потрібну до ваших сторінок. Надіслані форми потрапляють у папку вхідних адмін-панелі вашого застосунку, а власнику надсилається email про кожне нове надходження. Повну картину дивіться у Forms.
Локалізація
Section titled “Локалізація”Контент можна перекладати кількома локалями. Поля, позначені як локалізовані, зберігають значення для кожної мови, а хуки зчитування розв’язують їх через ланцюжок резервних варіантів (запрошена мова → налаштовані резервні варіанти → мова за замовчуванням), коли ви передаєте активну локаль відвідувача:
const { data: posts } = useCollection('posts', { locale: 'es' });Застосунки з однією мовою повністю ігнорують локалі — налаштовувати нічого. Про ширшу картину перекладів дивіться Internationalization.
Релізи
Section titled “Релізи”Реліз об’єднує кілька записів так, щоб вони вийшли (або зникли з публікації) разом — підготуйте скоординований випуск контенту (запуск, нова сторінка продукту, оновлення FAQ) і опублікуйте все одним кліком.
Примітка: Автоматична публікація за розкладом ще не реалізована. Реліз із датою
scheduled_atотримує статусscheduled, але має бути опублікований вручну. Автопублікація у запланований час незабаром з’явиться.
Типові шаблони (нехай AI все підключить)
Section titled “Типові шаблони (нехай AI все підключить)”Зазвичай ви не пишете це вручну — опишіть, що хочете, і Proyecta збудує це на основі реальних колекцій:
"Build a blog. Each post has a title, cover image, rich-text body, category, and tags. Public routes at /blog and /blog/[slug], newest first.""Add an FAQ section the owner can edit, grouped by category.""Add a bookable services list with a request-a-quote form.""Make the site bilingual — English and Spanish — with a language switcher.""Seed the testimonials with five realistic reviews for a coffee shop."
Де зберігаються дані вашого застосунку
Section titled “Де зберігаються дані вашого застосунку”CMS є місцем зберігання за замовчуванням для довготривалого контенту та записів. Деякі типи даних зберігаються у спеціалізованих системах:
| Тип даних | Де зберігається |
|---|---|
| Контент і записи (пости, послуги, оголошення, FAQ, каталог, бронювання) | Proyecta CMS (ця сторінка) — за замовчуванням |
| Стан у реальному часі / поведінковий стан (live-чат, стрічки, присутність, стан гри) | Realtime store — незабаром |
| Облікові записи користувачів та вхід | Auth |
| Товари, замовлення, підписки, платежі | Commerce |
| Завантажені файли та медіа | Files & Media |
| Статичні ресурси, запечені у білд | директорія public/ у вашому проєкті |
CMS є варіантом за замовчуванням. Realtime store для справді realtime поведінки незабаром буде доступний; навіть тоді довготривалий контент і каталог commerce залишатимуться в CMS.
Незабаром
Section titled “Незабаром”- Редактор контенту у builder — перегляд і редагування колекцій CMS безпосередньо з дашборду builder (наразі: керуйте контентом через адмін-панель або AI).
- Візуальний WYSIWYG-редактор — візуальне редагування для полів
markdown(наразі вони редагуються як markdown). - Автопублікація за розкладом — релізи, що виходять автоматично у запланований час.
- Live preview змін контенту у вашому застосунку.
- Ролі для контенту — розмежування прав редактора та прав розробника.