Appifio Creator Backend tab showing Easy vs Advanced version cards
Backend - Easy vs Advanced

Appifio Creator · Lesson EM01 · Easy Storage series

Easy Storage:
built-in helper & learning map

Backend tab = Simple version (Easy). You only call appifio_client - you do not rewrite the library.

Learning goals: See how Easy differs from Aura; wait for the client correctly; know how to read EM02-EM09.

Prerequisites: Creator → Backend tab → choose Easy → save in that tab → click Save changes.

Also read: F01 · BR02 · EM series

Important - Prompt & Skills

Creator → Prompt & SkillsAppifio prompt template → turn on exactly: Appifio Easy Storage - Complete AI Guide. The agent then has the Storage prompts/skills - you do not need to paste Storage docs yourself.

Do not enable the Aura template (Appifio Aura Storage (Advanced) - Complete AI Guide) at the same time - that conflicts and confuses the AI.

1. What is Easy? (mental model)

Easy = one JSON notebook on the server. To add / edit / delete posts or contacts: download the whole notebook to the browser → change it with JavaScript → write the whole notebook back.

Your page → await appifio_client.appifio_…()
→ Easy server handles it
→ Result box: { success, message, data? }
Unlike Aura (Advanced): Aura splits lists into chunks and has admin login. Easy has no readList / appendData / Aura-style admin login page. Do not copy Aura code into an Easy app (especially JSON.parse - see EM02).

2. Do / don’t

DoDon’t
Call appifio_client.appifio_readFile(...) (and other existing methods)Write your own class AppStorageClient
Build UI + business logic (forms, lists, blog…)Rewrite / override appifio_* methods
Wait with waitForAppStorage()Check typeof appifio_client === 'undefined' (always “exists” - it’s a getter)

3. Wait for the client (required before the first call)

Right after open, the library may not be fully loaded. Correct pattern:

document.addEventListener('DOMContentLoaded', async () => {
  if (typeof window.waitForAppStorage === 'function') {
    await window.waitForAppStorage();
  }
  // Now call the API
  const res = await appifio_client.appifio_readFile('blog.json');
});
Don’t trust if (appifio_client.appifio_readFile) alone - while waiting, the system may hand you a “queue proxy” so every method name looks present. Prefer waitForAppStorage().

4. Standard result box

FieldPlain meaning
successDid it work?
messageStatus text
dataUseful payload (content, url, exists…)

Easy has no built-in “admin login.” Anyone with a valid page session key can typically read/write - be careful when asking AI to build admin pages.

5. Full Easy method map → EM lessons

EM03-EM08 use the same method-card style as AM: Job · Params · Call · Returns · Notes (+ method-count checklist).

GroupMethods (complete list)Lesson
Data storecreateFile, readFile, writeFile, deleteFile, restoreFile, hardDeleteFile, fileExists, getFileInfo, renameFile, copyFile, listFiles, searchFiles, findByName, readField, writeField - 15EM03
CompositecreateContentWithRoute, ensureHandlerFile, deleteContentWithRoute, updateContentIndex, removeFromContentIndex - 5EM04
Page files / uploadreadFsFile, writeFsFile, deleteFsFile, listFsFiles, getFsFileInfo, uploadImage, uploadFile - 7EM05
RoutesaddRoute, removeRoute, getRoutes - 3EM06
HelpersgenerateSlug, formatDateTime, formatFileSize, getRouteSlug, getQueryParams, sanitize/extension/isImage/unique · deepClone · debounce · showError/SuccessEM07
ServerexecuteBackendFunction (+ Secrets UI) - 1EM08
Admin authNone (unlike AM06 Aura)-
Concept / example lessonsContent
EM01Map + wait for client
EM02JSON.parse · empty file on first run
EM09Blog example + overall checklist

6. How to read each method card

  1. Job - one plain-language sentence
  2. Who can call - Easy: valid page session key (no Guest/Admin split like Aura)
  3. Params · Call · Returns · Notes

Next

EM02 - Parse JSON & first-run empty file · then EM03 (15 data-store methods)

Appifio Creator · User guide · EM01