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.