Aura CMS dashboard showing the live content panel modules
CMS panel

Appifio Creator · Lesson AS19 · Aura CMS + Storage

CMS runs on Aura only
two declaration files · correct Prompt · no Easy

Know what the content manifest and UI contract each do - so you and AI stay aligned, and the Panel doesn’t break.

Important - Prompt & Skills

Backend = Advanced + CMS on. Creator → Prompt & SkillsAppifio prompt template:

  • (Optional) Shared frame: Appifio Storage - Shared Prompt Framework (Easy + Aura)
  • Required: Appifio Aura Storage (Advanced) - Complete AI Guide
  • Required when using CMS: Appifio Aura CMS + Storage - Complete AI Guide

Do not enable the Easy template. CMS does not run on Easy Storage.

Learning goals: Tell the two declaration files apart; know what AI may read/edit; use a safe AI ask flow.

Prerequisites: F01 Advanced · AS01 · AS07 · AS10 (content map)

Next: AS20 (real estate / fields) · AS21 (AI declares a type - merge both files)

1. Why no CMS + Easy?

CMS Custom data types screen where new types are declared
Declare types here

Aura CMS needs sharded lists (readList / appendData / updateData), admin login, and two site declaration files. Easy is “one JSON ledger + overwrite” - not enough. Turning CMS on forces Backend Advanced.

Asking AI to write a CMS blog the Easy way (JSON.parse + writeFile the whole ledger) → wrong. Always Aura + the declaration tables.

2. What the two declaration files do

FileJobWho reads it?
__cms_manifest__.json
Content declaration table
Which content types · which fields · data file name (data_file) · routes · categories/tags. Source of truth for JSON file names.Panel /cms (menu + forms) · public pages · AI
__cms_ui_contract__.json
UI contract
Which HTML pages · required hook ids (#post-list, #de-item-list…) · CSS/JS to link. Custom types add de_… keys.AI when editing layout · CMS docs · (kept in sync with HTML pages)
One line: Manifest = which data. UI contract = which HTML pages / hooks.
Golden rule when editing both files: always read first → only add/overwrite the new type slice (merge) → write back. Never drop an empty file on top - you’ll wipe existing blog/shop. AI steps: AS21.

3. Public pages vs admin

SurfaceAllowedNot allowed
Public pagesRead list/file · public form appendData (contact…)writeFile / updateData / write HTML / addRoute
Panel /cmsAfter login: CRUD posts, upload, routes, edit declarations (when saving a type)Hand-edit system login files

4. What AI may / may not change

MayMay not
Public HTML/CSS/JS (blog, shop, properties/…)Platform admin UI source under /cms
Call Storage with the data_file from the declaration tableInvent file names; mix Easy APIs
Keep UI-contract hooks when restyling layoutDelete #post-list / #de-item-list
Merge both declaration files when you ask clearly (AS21) or you Save a type on the Panel (AS20)Overwrite the whole manifest/contract from scratch

5. Built-in content types (reminder)

After CMS opens you usually get: posts, static pages, blog categories/tags, products, orders, contacts, site settings. File names come from the declaration table (e.g. posts are often blog-posts.json - don’t memorize an old shop-products name if the manifest says otherwise).

Public-page filters: built-in blog uses status === 'published' · custom types use publish_state === 'published'.

6. Two AI ask flows (pick one)

A - Recommended

  1. Panel → Custom data types → Save (AS20)
  2. Ask AI only to adjust HTML + filters
  3. AI reads the declaration table; doesn’t touch structure unless you ask

B - AI declares the type

  1. You ask clearly: create type + merge both files
  2. AI follows AS21 (schema like Panel)
  3. Open /cms and verify menu + form

7. Checklist before you ask AI

  1. Backend Advanced + CMS on + Save changes done
  2. Prompt: Aura Complete + CMS Complete - Easy off
  3. Opened /cms, admin account exists (AS07)
  4. New type: Panel (AS20) or AI merge (AS21)
  5. Remind AI: read __cms_manifest__.json (+ contract when editing HTML)
  6. Don’t ask AI to invent users.json / fake login

8. Common issues

SituationFix
AI writes JSON.parse + overwrites the whole ledgerPrompt is Easy or missing CMS guide - turn Easy off, re-enable Aura + CMS Complete
CMS has posts, site emptyWrong data_file or filtering on status instead of publish_state (AS10)
Blog/shop gone after “creating a type”AI overwrote the whole declaration file - restore an older version; next time merge only (AS21)
New-type Panel form broken / missing menuMissing admin/field_ui or hidden taxonomy entity - redo per AS20/AS21

Next steps

AS20 - Fields + real-estate example on the Panel

AS21 - When you ask AI to declare a type (merge both files like the Panel)

Appifio Creator · AS19 · CMS + Aura