Features
Everything that works today.
This works in Armori.ca right now. What's still on the fire is listed in the cauldron.
Available🧙 Panoramisk, the agent
• Writes your Expo app (React Native, Expo Router, TypeScript) with Claude by Anthropic.
• Checks the preview himself: a screenshot plus the console errors.
• Asks a question with choices when in doubt; colour codes become swatches.
• Saves versions himself, each with its own description.
• Follows fixed design guidelines for mobile apps and can design a logo.
• Remembers what matters per app in the recipe notebook (CLAUDE.md).
• Only writes in his own app, can read other apps in your workspace and runs no commands.
• A turn keeps running on the server even if you leave; you can always stop it.
💬 Chat and recipes
• Images you drag, paste or pick go along to Panoramisk.
• Other files go into your app's assets/ folder.
• Use @ to reference a file; long pasted text becomes an attachment.
• A queue for your next requests, and ↑/↓ for earlier messages.
• Spells (slash commands): /logo, /scherm, /ontwerp, /fout, /api, /uitleg.
• And for the editor itself: /builden, /testflight, /apk, /aab, /versies, /code, /voorbeeld, /herladen, /aanwijzen, /stop.
• The chat column can be resized.
📱 Preview
• Your app live in an iPhone frame, with status bar, Dynamic Island and home indicator.
• The device's real safe areas; the clock turns white on a dark app.
• A screen picker with every screen in your app.
• Point at an element: click something in the preview and Panoramisk knows which component you mean.
• Whatever is saved shows up in the preview instantly.
• Requests to other domains go through a safe proxy.
🌿 Code and versions
• A code editor that saves by itself (⌘S right away); ⌘W or Ctrl W closes the file.
• Images shown as images, SVG with a switch between preview and code.
• Every app has its own git history: saving and every turn become a version.
• Restore an earlier version (as a new version, nothing is lost).
• Fork from any version: a new app with the history up to that point.
🎨 Logo and icon
• A logo as SVG (assets/icon.svg) automatically becomes the 1024×1024 app icon.
• The Android icon, favicon and splash screen are made from it too.
• App cards show the icon and a screenshot of the start screen.
⛵ Armori.ca Go
• Scan the QR code and your app runs natively on your phone.
• A new version loads by itself.
• With every package of Expo SDK 58, including Reanimated 4 and Gesture Handler.
• Requests to /api go from the phone to your app's API.
🗄️ Backend
• API routes like in Expo Router (app/api/…+api.ts), with GET, POST and dynamic segments.
• A SQLite database of its own per app.
• Migrations (numbered SQL files) run right away, each once; a failure is rolled back.
• Database tab: view and search your tables, read-only.
• Every API request runs in its own isolated process, with limits on memory and time.
• Environment variables (EXPO_PUBLIC_) in .env; note that they are visible in the app.
• Package versions per app; Armori.ca writes the lockfile and installs without scripts.
🚢 Building
• TestFlight for iOS, and .apk and .aab for Android.
• The build runs on a builder, a Mac linked to Armori.ca.
• A queue, and a live log in a terminal in the browser; the full log is kept.
• Build number and bundle ID are filled in for you.
• Apple credentials per workspace; an upload key of its own per Android app.
• A build survives a server restart or a builder that briefly drops out.
🏘️ Workspaces and collaboration
• Workspaces with members; everyone in a workspace can reach all its apps.
• Roles: owner, editor and viewer.
• Invite by email with a personal link, valid for seven days.
• See live who is in an app and what Panoramisk is doing.
• Duplicate, fork, move apps to another workspace, and delete with "Undo".
• ⌘K or Ctrl K: jump to any app or switch workspace.
🔐 Account and security
• Sign in with email and password; your own profile with name and photo.
• Forgot your password: a link by email, valid for one hour.
• A limited number of failed sign-in attempts per quarter of an hour.
• The agent is fenced in: only his own app, no commands, no files outside the app.
• Your app's API can only reach public addresses.
Getting started
From your first recipe to an app in the store, step by step.