An app is a mini-app the AI assistant builds from your description: a quick-entry form that fills several libraries at once, a dashboard with today’s tasks next to this month’s spending, a checklist, a calculator, a tool that works with a web service, a small game that keeps its scores. It runs inside Memento and saves ordinary entries in your libraries: they are searched, charted, exported and synced like any others, and stay when the app is deleted.
Using an app needs no AI, and no internet once its libraries are on the device, unless the app works with the web. Apps are built and changed in their own chat with the AI assistant 2.0, the Builder. Upload an app to Memento Cloud to use it on other devices or share it.
Creating an app
- Tap Add App. The New app sheet asks:
- Name, Icon and App color — optional. Without a name the app is “New app” until the builder names it.
- Framework — the ready-made building blocks the app is made with; it cannot be changed later. See Frameworks below.
- Add-ons — libraries Memento includes for the app’s pages: maps, charts, a calendar, sound, physics for games and more; see Add-ons for the list. Optional: the builder connects the ones the app needs.
- Libraries the app can access — your libraries the app may read and change; optional, the builder can connect or create them later. A locked library asks for the master password once. A library someone shares with you in Memento Cloud cannot be connected.
- Tap Create. The app opens on a starter page with the builder over it.
- Tell the builder what the app should do, or tap a suggestion such as “A screen for “Expenses” that …” and finish the sentence.
Frameworks
| Framework | Good for |
|---|---|
| Ionic | Mobile screens: lists, forms, tabs, cards, with the Android look |
| PrimeVue Aura (default) | Data-heavy screens: forms, tables, dialogs, with the Aura look |
| PrimeVue Material | Data-heavy screens: forms, tables, dialogs |
| Plain HTML | Simple pages with nothing loaded but the app’s own files |
| Canvas game | Games drawn on a canvas, with touch input |
| 3D scene | Interactive 3D scenes and model viewers, with touch camera controls |
| Phaser | 2D games on Phaser: sprites, animations, physics and sound, sized to any screen |
Add-ons
An add-on is a library Memento includes for an app’s pages. It comes with Memento and works offline, and it gives the app no access to anything.
- When creating an app, pick them under Add-ons, or leave it to the builder: it connects and disconnects add-ons as it writes the app, without asking.
- In the app’s settings, Add-ons lists the connected ones; see App settings.
- Each framework lists only the add-ons it can use. An app made with an add-on this version of Memento lacks asks you to update Memento.
| Add-on | Library | For |
|---|---|---|
| Maps | Leaflet, with marker clustering | Maps with markers; tiles only from an allowed host, no vector-tile maps |
| Charts | Chart.js | Line, bar, pie and other common charts |
| Advanced charts | ECharts | Calendar heatmaps, gauges, Sankey diagrams, treemaps, funnels and other charts that Charts lacks |
| Signatures | Signature Pad | A signature drawn by hand, saved as an image |
| Gallery | PhotoSwipe | Photos full screen |
| Drag and drop | SortableJS | Lists sorted by dragging, boards |
| Slides | Swiper | Cards, days and carousels swiped sideways |
| Calendar | FullCalendar | Entries on a month, week, day or list calendar |
| Text editor | Quill | Editing rich text fields in HTML format |
| Markdown | marked and DOMPurify | Rich text fields shown formatted |
| Barcodes | bwip-js | QR codes and barcodes drawn; a barcode field’s value as the entry card shows it |
| Tables | Tabulator | Entries as rows to sort, filter and edit; columns that do not fit a phone folded under each row |
| Sound | Howler.js | Sound effects and music, from your entries’ audio files too |
| Physics | Matter.js | Bodies that fall, bounce and collide, for games |
| PDF documents | jsPDF | Reports with text and images, saved in a library’s file field and opened in your PDF viewer |
| Confetti | canvas-confetti | Short celebrations after a completed action, respecting reduced motion |
| Fireworks | fireworks-js | Rockets after a completed action, or a show you watch and launch with a tap |
| Icons | Lucide | About 1,900 line icons for buttons, lists and games |
| Graphs | Cytoscape.js | Entries and their links as a graph: family trees, tasks and what blocks them, people and projects |
| Canvas editor | Konva | Photos marked up with arrows, circles and notes; plans and seat maps with entries placed on them |
| Recurrence | rrule | Things that repeat — habits, maintenance, payments, lessons — with their next dates and on a calendar |
| Gantt charts | Frappe Gantt | Plans of tasks with dates, progress and what each follows |
| CSV files | Papa Parse | Exports for Excel saved to the phone, and imports of CSV files into a library |
The builder
The builder is the app’s chat: Builder on the app’s top bar, in the tile’s ⋮ menu, or under the list of an app that cannot start. Each app has one builder chat, kept with the app and not listed in the chat history. Only the owner can open a cloud app’s builder.
With a request, the builder:
- asks what it needs to know, with options to tap;
- creates the libraries the app needs, in a library group and connected at once, or connects your existing ones — asking first: “Let the app read and change the entries of “Expenses””. It connects a library with all access on and never changes the access: that is yours, in the app’s settings;
- writes the pages, runs the app to check that it loads, saves and shows what it should, and fixes the errors it finds;
- connects the add-ons the app needs without asking, as an add-on gives the app no access to anything; a map’s tiles come from the internet, so it asks you to allow their host, such as tile.openstreetmap.org;
- keeps the app’s name and description current, and notes on the app for its next chats.
For a cloud app, new libraries are checked against your cloud limits first, then created, connected and uploaded without another confirmation; connecting an existing local library asks as usual and checks the limits too. If a check fails, nothing is created or connected. If a later upload fails, the libraries created stay: ask the builder to retry with them. See Apps in Memento Cloud.
While it works, the app’s page is covered (“The builder is working…”). When it needs the page and the app is not on screen, its notification says “Open “App” so the builder can go on”: tap it.
Try what the builder made and tell it what to change (“Make the buttons bigger”, “This does not work: …”). Each request is saved as a version of its own, so Versions can undo it.
The builder works with your real entries: it is set to read before it changes anything, to ask before adding test entries to a library it did not create for the app, and to remove what its checks add. Like every assistant 2.0 chat, it also answers about any library and about Memento. Building uses AI credits or your own provider key; using the app does not.
Using an app
Tap the app’s tile. The top bar has the app’s name, Builder, and a menu with Reload, Full screen and Settings; in an app shared with you, only Reload and Settings. Back goes back within the app’s own screens first.
- Home screen: ⋮ → Create Shortcut on the tile puts the app on the phone’s home screen.
- Full screen: hides the top bar; the phone’s status and navigation bars stay. Back on the app’s first screen shows the top bar for three seconds, and Back again closes the app. Exit full screen in the menu turns it off. Each app keeps its choice; a cloud app’s mode syncs from its owner.
- Kiosk mode: the switch in Settings → General hides the phone’s bars too — for a game, or a tablet on a wall. Swipe from the top or bottom edge, or press Back on the app’s first screen, to bring them back with the top bar. Exit full screen or the switch turns it off.
- Offline: an app works without internet. It reaches only the hosts allowed in Settings → Network: to fetch data — exchange rates, weather, a parcel’s status —, send it to a service, or show pictures and map tiles. A web link in it opens in the browser.
- Its data: entries of its libraries. Saving from an app runs no triggers or automations; an entry it deletes goes to its library’s Recycle Bin.
- Files: an app shows its entries’ photos and files; tapping a file opens it in an app on the phone, as in the entry, downloading a Memento Cloud file first. It can add files to entries: a photo from the camera (Memento asks for the permission once) or files from the phone, at most 20 MB at a time. An export button saves a file to the phone — a CSV, a PDF report: Android’s save dialog opens and you choose the folder, such as Downloads.
- Scanning: an app can scan a barcode or a QR code with Memento’s scanner, the one a barcode field opens. It gets only the code, never the camera’s picture.
- Microphone: an app can record sound while it is on screen — a voice note into an audio field, say. Memento asks for the microphone permission once. Switching to another app or turning the screen off stops a recording; closing the app while it records may lose the recording, so stop it first.
- Rights: a library you may only read (subscribed, or by Memento Cloud rights) is read by the app, and saving to it fails; fields your cloud rights hide stay hidden. The app also keeps to each library’s access in its settings.
- Page errors: a strip under the page lists them, “Page errors: N”. Tell the builder “This does not work” — it reads the same list. In an app shared with you, ask its owner.
- The app follows Memento’s light or dark theme; turning the phone keeps its state.
When an app cannot start
Opening an app checks each library connected to it. If one cannot be reached, the app does not start, and its screen lists each such library with the fix:
| Shown | Fix |
|---|---|
| Library “…” is in the trash | Restore |
| Library “…” is locked | Unlock — enter the master password |
| No access to library “…” in Memento Cloud | Ask the library’s owner for access |
| Library “…” is not on this device | Memento Cloud opens its cloud page to download it; the owner can also disconnect it |
For the owner, Builder under the list can connect or create another library; Settings in the app’s menu disconnects one. Members can restore, unlock or download libraries but cannot change the app’s connections. A shared app uses its owner’s cloud libraries; a member’s personal local library cannot replace one.
Then the app checks its secrets (below): it asks for the missing ones, and Cancel leaves a list with Enter.
Renaming a library or a field does not affect an app. Changing a field’s type may: the app then reports an error naming the field — ask the builder to fix it.
Secrets: API keys
An app that works with a web service may need your key for it — a weather service’s API key, a token, your home server’s address. The app asks for each one it needs when it opens: type it or scan it from a QR code; Get the key opens the service’s page. Optional ones are entered in Settings → Secrets.
Memento keeps them encrypted on this device and puts them into the app’s requests itself, only to hosts allowed one by one in Network: the app’s pages, the builder and Memento Cloud never see them. Never paste a key into the builder’s chat. Each user of a shared app enters their own; a copy of the app keeps them, an export does not; on another device the app asks again.
App settings
Settings in the tile’s ⋮ menu or in the app’s menu; they need no AI. The sections come in three groups: the first for every day, Data and access for what the app may reach, For developers for what the builder usually handles. A member of a shared app has only About — the owner, the link, the version and the last sync —, Secrets and Remove from device.
- General — the name, description, icon and color; the framework and the version; Kiosk mode.
- Memento Cloud — upload a local app, or open a cloud app’s information, address and access list.
- Versions — the saved versions; Show all versions in the menu lists every change, one per builder request. Save version saves the current state under a name. Restore puts the app’s pages back as they were in a version, saved as a new version so that it can be undone too; libraries and their entries never change. Not while the builder is working.
- Libraries — the connected libraries, each with its state — Connected, In the trash, Locked, No access in Memento Cloud, Not on this device — and its access: Full access, Read only, or what the app may do besides reading, such as “Create · Edit”. The button before Disconnect changes the access: reading is always on; check creating, editing and deleting entries and tap Save. Restoring an entry from the trash counts as editing. A new connection has full access; a subscribed library stays read only. Tap a library to open it. Disconnect removes it from the app; the library and its entries stay. Connect adds your libraries — then ask the builder to use them, as the pages know only the libraries they were written for; connecting a local library to a cloud app uploads it too. In a shared app, this access is also what members get in the libraries; see Apps in Memento Cloud.
- Network — the internet hosts the app may send requests to and show pictures from, such as api.example.com; *.example.com allows its subdomains. Allow host takes a host name, an IP address or a web address; the delete button removes one. Allow all hosts lets the app reach any site, as for pictures from many sites such as book covers — best for apps without sensitive data; it asks you to confirm. A new app has none, and the builder asks you to confirm each host it needs. Members of a shared app get the owner’s list. Allow only services you trust: what the app sends there leaves your phone.
- Secrets — the keys the app asks for; a saved one shows its first and last characters, so you can tell which key it is. Tap one to enter a new value; the delete button removes it.
- Add-ons — the libraries the app’s pages may load, each with its version. Connect adds ones the framework can use; the button on a row disconnects one after a confirmation — a page still using it stops working until the builder changes it. Each change is saved as a version, so Versions can undo it, and the open app reloads. Not while the builder is working. The list is kept with the app’s files, so copies, exports, versions and Memento Cloud carry it.
- Code — the app’s files by folder; tap a file to read it. Edit opens it in the code editor; Save saves it as a new version and reloads the open app. Not while the builder is working; if the builder changed the file meanwhile, Save asks before replacing it.
- Notes — what the builder wrote down about the app for its next chats; read only.
- Delete — moves the app to the trash after a confirmation.
Cloud sync and sharing
Upload an app to Memento Cloud to use it on your other Android devices or to share it, with its libraries, with other people.
Uploading an app
Tap Upload to Cloud on the tile, or open Settings → Memento Cloud, sign in if asked, review the local libraries going up with the app and confirm. Connected libraries and the local libraries they need are uploaded with their entries, within your plan’s library count and storage limits; apps themselves are unlimited. The tile gets a cloud mark.
- A missing, trashed or another user’s connected library must be resolved first; an encrypted local library is uploaded from its own library screen first.
- Libraries the builder creates for a cloud app are checked against the limits, then created, connected and uploaded without another confirmation. If the upload fails, they stay: ask the builder to retry.
Downloading on another device
Open Cloud Storage and sign in: My apps lists your apps, Apps shared with me those given to you or your groups. Tap an app, then Download, and choose an app group; Memento downloads the required libraries with their entries first. The app’s address, https://mementodb.com/a/<app id>, opens the same page. An encrypted library is downloaded from its own cloud page first.
Sync and updates
The app’s pages, name and look, notes, library connections and permissions, and screen mode sync between devices; the builder chat and version history stay on each device. Opening the app checks for changes; without internet it keeps working with the libraries on the device. When a new version arrives, The app has been updated appears: save what you are entering and tap Update and restart. If two devices changed the same file or setting, the one syncing last wins, and both states are kept in Versions. Entries sync as in any cloud library; see Memento Cloud.
Sharing an app
Only the owner shares an app:
- Open the app’s Settings → Memento Cloud, or the app under My apps in Cloud Storage.
- Under Who has access, tap Add user or group and enter a username, an email or a group as @Editors; the button beside the input picks from your team.
- Review the library permissions the recipient gets and tap Share. Someone outside your team stays Pending… until they download the app.
- Send the link by tapping the app’s address.
Public access on the app’s cloud page makes the app available to every signed-in Memento user who has its link; it does not appear in their Apps shared with me.
What access includes
Sharing gives the app and its libraries: in each connected library, reading plus the creating, editing and deleting allowed in Settings → Libraries — over all entries, not just the recipient’s own; the owner’s linked libraries get read access. These permissions work outside the app too. Changing them in Libraries reaches every user after sync. For one person’s own permissions, use the library’s rights; permissions from apps and from the library add together.
Removing access
On the app’s cloud page, tap a user’s or group’s row, or the Public access row, and confirm. The access that grant gave goes; other grants and the library’s own rights stay. When no grant covers a person any more, their device stops opening the app on the next sync and offers Delete.
Using an app shared with you
The owner controls its code, connections, permissions and screen mode. You can use Reload, Create Shortcut, Move and Remove from device; your Settings has Secrets, your own keys for the app, and About. For changes, ask the owner.
Copying an app
⋮ → Copy on a tile copies the app into the same group: its files as they are now, its icon, color and framework. The sheet asks the copy’s name and whether to Copy library structure:
- Off: the copy works with the same libraries as the app.
- On: each connected library’s structure is copied — fields, look and triggers, without entries, saved filters, charts and widgets — and the copy works with the copies; link and lookup fields between them lead to the copies. A locked library asks for the master password first; a library that is missing, in the trash, or that Memento Cloud rights do not let you copy stops the copy.
The copy keeps each library’s access and starts its own history; versions and builder chat are not copied. Copying your cloud app makes a local app; only the owner can copy it.
Exporting and importing an app
An app can be saved to a .mapp file and imported on another device or by another person, with the structure of its libraries.
- ⋮ → Export on a tile asks where to save the file. It holds the app’s files and notes, its name, description, icon, color and framework, and the structure of its connected libraries and of every library they link to or take values from — fields, look and triggers, without entries, saved filters, charts and widgets. A locked library asks for the master password first; a library that is missing, in the trash, or that Memento Cloud rights do not let you copy stops the export.
- To import, tap the import button next to the close button in the New app sheet and pick a .mapp file. A dialog shows the app, the libraries to be created and the internet hosts the app is allowed; Import creates them and the app and opens it, the app in the sheet’s app group, the libraries in a library group. Import an app with allowed hosts only from someone you trust: it can send what you enter in it to those hosts.
- The libraries are always new, so importing never changes yours; links between them lead to the new ones. The app works with the new copies of its connected libraries, each with the access it had; the libraries they link to are created but not connected.
- The imported app starts its own history; versions and builder chat are not exported. An app made in a newer Memento asks you to update Memento first. Only the owner exports a cloud app; the imported app is local.
Deleting and restoring
- ⋮ → Delete on a tile moves the app to the trash after a confirmation, with Undo in the message under the screen. Its versions and builder chat go with it.
- Navigation drawer → Recycle Bin → Apps: tap an app to restore it to its group, or to My apps when the group is gone. The cross deletes it for good. Empty Trash clears only the open tab.
- Deleting an app never deletes its libraries or their entries.
- Deleting a cloud app on this device leaves its cloud copy and sharing in place; you can download it again.
- To remove the cloud copy, the owner opens the app’s cloud page → ⋮ → Delete from the cloud and confirms. The app on that device becomes local and its libraries stay; the app’s grants and the library access they gave go, while other apps’ and manual library rights stay. Other devices learn of it on their next sync: an owner’s device offers Keep as a local app or Delete, a member’s Remove from device.
Backups and other devices
- Apps are kept in Memento’s database, so every backup — with or without files, the auto backup too — includes them with their versions, notes and builder chats, and restoring it brings them back, a cloud app keeping its cloud connection.
- To sync an app between your Android devices, upload it to Memento Cloud; for an independent copy, use Copy or export and import it.
Limits
- An app reaches the internet only at its allowed hosts, through Memento: it cannot load scripts or styles from the web, and it cannot ask an AI model. Its only libraries beyond its framework are the add-ons Memento includes; maps show tiles only from an allowed host, and vector-tile maps are not supported.
- An app reaches only its connected libraries and their links, and only the owner’s libraries can be connected. Linked entries can be read where access permits, and changed only when their library is connected with that access.
Tips for building apps
You don’t need to know programming to build an app, but a few habits make the builder’s work much better.
- Give context. Say who will use the app and for what, which libraries and fields it works with, and what a typical day with it looks like. “A form for my dog-grooming salon: client, dog, service and price go to “Visits”” is better than “a booking app”.
- Plan first. For anything bigger than one screen, ask: “Suggest a plan first, don’t write code yet.” Fix the plan, then let the builder work through it step by step.
- Start small. Build the main screen first, try it, then add features one request at a time. Small requests are easier to check and to undo.
- Choose the model for the job. Use a stronger model in the chat’s model picker for creating the app and for large changes; a cheaper one is enough for small fixes and wording.
- Watch the chat’s length. Every request resends the whole conversation, so a long builder chat costs more and the model remembers its beginning worse. The number next to the model in the input bar, such as ↑ 12k, is the size of the next request; tap it for details. When the chat grows long, a notice offers Compact: older messages are replaced with a short summary. After finishing a feature, you can compact from the chat’s menu yourself, or start over with Clear — the app, its versions and the builder’s notes stay.
- Try it yourself. Use the app as you really would: enter data, open the library, and check that the entries are saved correctly. If something is wrong, say exactly what you did, what you expected and what happened.
- Ask for a review. After a big change, ask the builder: “Review the app’s code for bugs, edge cases and data that could be lost.” A fresh look often finds what the first pass missed.
- Keep a way back. Before a big change, tap Save version in Settings → Versions. For an app that works with important data, try changes on a Copy with Copy library structure on, and keep backups.
- Stay safe. Allow only internet hosts you trust, enter API keys only in Secrets and never in the chat, and think twice before sharing an app that edits or deletes entries.