Exotool: Product Assessment and Recommendations

Prepared for Hubert Lane by Cyrus Prescod · 4 November 2026

Hubert, this is my independent view of where Exotool stands today and the changes I think would matter most. I have built with the platform alongside you, and you have already acted on some of my earlier feedback. Everything below is meant as input for your decisions. It is not a request for work from me.

1. Owner brief

The short version. Exotool's core idea is strong and, among the products I compared, uncommon: a builder writes logic once, and the compiler places it on the device or the server and builds the communication between them. The tooling around that idea has recently become very agent-friendly: revisions, backups, undo, compile errors with exact paths, and part inspection. What holds the product back is mostly what people see and touch first. The generated app shell is dated, it blocks zoom, and it still uses a removed offline technology. New builders also have no clear path from “I have an idea” to “I have a useful app.” Three changes would do the most for learning, power, attractiveness and competitiveness, with little disruption to existing apps.

1 · A modern, accessible, installable app shell Replace the 2016-era default theme and the AppCache offline method with a 2026 theme preset, a web app manifest, a service worker and accessible markup.

Who benefits: every end user first; novices get a good-looking first app; agencies get client-ready output.
Why you should care: people judge the platform by its output in the first minute. Today a novice's first app looks older than what AI tools generate.
2 · Guided start plus “review every change” A goal-based sample picker that leads into the Helper tour. After every save, from you or an AI assistant, show the change on the canvas: what changed, whether it compiles, and one-click undo.

Who benefits: novices learn faster; experts and agencies trust bulk and AI edits.
Why you should care: it turns revisions, backups and save summaries you already built into a visible feature people can buy.
3 · Agent-ready, permission-aware workflows Let assistants call an app's API-endpoint flows through scoped tokens. Generate a data-exposure report from the compiler's device/server placement facts, then add declared access rules on data.

Who benefits: agencies and business owners whose staff already work in assistants; end users whose data stays protected.
Why you should care: as agents become normal, “can my assistant safely run this app's workflow?” becomes a buying question. Your compiler can answer it.

Disruption to existing apps: all three can be opt-in. A new theme preset sits beside the existing presets, the new shell is applied on the next compile, and the report reads data the compiler already produces. Declared access rules are the only item that changes the data model, so they come last.

Where to look next: section 2 opens with an 11-row list of where Exotool can be improved, with evidence and severity. Section 3b sets out 8 steps that would widen Exotool's moat, each with a frank note on how hard it would be to copy. Section 3c shows a clickable mockup of the direction, with every part mapped to an existing Exotool feature or a numbered recommendation.

About this assessment

Evidence base. (1) My earlier reverse-engineering rundown (exotool-rea-rundown.md, “the rundown”). It is based on the editor's and generated apps' shipped JavaScript, the Exotool MCP tools, and a build of the Sponsor Desk example. (2) Read-only checks made for this report: the Exotool reference docs (overview, editor and language, published 22 Oct–2 Nov 2026), the preset catalogue, the list of 45 system samples, and the public previews of two samples and Sponsor Desk at desktop and phone widths. (3) Current first-party documentation from competing products, cited next to each claim. One limitation: I did not sign in to the editor, so the canvas, Helper panel, plan limits and whether Helper “Ask” is enabled were not observed. Editor-canvas design points are therefore proposals, not observed defects.

Labels used: Observed seen directly in shipped code, docs or screens · Inference my reading of the evidence · Proposal a suggested change. Findings from the rundown are attributed to it unless I re-checked them. One app's behavior (for example Sponsor Desk) is not treated as a platform-wide limitation unless a platform file or doc shows the same thing.

2. Strengths and friction map

Each material finding has a source and a confidence level. Proposals are kept out of this section and appear in section 3. The table below is the short answer to “where can Exotool improve?”. The detailed evidence follows in 2a–2d.

Where Exotool can be improved: at a glance

Severity is my judgment of the harm to users if nothing changes: High blocks or drives users away, Medium slows them or adds risk, Low is polish. “Fix” points to the recommendation in section 3.

#AreaWhat falls short todayEvidenceWho it hurtsSeverityFix
1Accessibility of generated appsPinch-zoom is blocked; sample inputs have no labels; the main action is a link, not a button; placeholders are low-contrast; page language is unset.Observed in 3 pages and 1 sampleEnd users with low vision or using screen readers; agencies with legal obligationsHighR1
2Install and offlineOffline relies on AppCache, which Chrome and Firefox have removed. No web app manifest link or service worker in the pages checked.Observed markup; Inference on effectEnd users on phones and in weak signal; owners promised a “PWA”HighR2
3Default visual quality3 app themes, likely from 2016; small grey labels; flat list-row buttons; placeholder copy in a public sample. Good results need hand-written CSS.Observed screens and presetsNovices (first app looks dated); agencies (restyle every project)HighR3
4Getting started45 samples listed by internal names, mixed with test fixtures; the tour has to be found; the sign-in page shows no example of what Exotool makes.ObservedNovices and evaluatorsHighR4
5Editor learning curveAbout 15 manual layout rules; documented workarounds for broken form icons and Buttons Row; a misplaced link is reported on save, not prevented while dragging.Observed in the docs (canvas not viewed)NovicesMediumR6
6Seeing what changedSave summaries, backups and undo exist but are not visible as a review step. Only 4 backups are kept, with no named versions.Observed in the MCP tools and the rundownAgencies; anyone accepting AI editsMediumR5
7Permissions modelAccess checks are hand-written in each activity. No declared “owner may edit” rules; a clean compile says nothing about access.Observed in the language docsEnd users' data; owners' liabilityHighR7, R9
8PortabilityNo downloadable export of the diagram, assets or compiled app was found.Not found in the docs checkedAgencies; buyers who fear lock-inMediumR11
9Live messaging safetyMessages travel in GET URLs, and the channel key is optional on the client.Observed on the client; server not seenEnd users; ownersMedium (unconfirmed)R12
10AI help inside the editorHelper Ask exists but may not be switched on, and it cannot yet propose a fix you can accept.Observed code; status unknownNovices; busy expertsMediumR10
11Assistants using finished appsAPI endpoint nodes exist, but they are not offered as scoped MCP tools that run as a specific user.Observed in the docsAgencies and clients whose staff work in AI assistantsMedium (growing)R8

2a. Strengths to keep

FindingTypeEvidenceConfidence
One body of logic; the compiler places each statement on device or server and builds the communication. Declarations (declare_location) and if_on_client/if_on_server pairs give explicit control where needed.ObservedOverview §6; Language §8–9High
The app model is a JSON diagram with revision checks, a backup before each save (the newest 4 kept), one-step undo, JSON-Patch edits, and compile errors returned with exact paths.ObservedExotool MCP server instructions and tool descriptions; rundownHigh
Compile facts per element: the variables each element reads and writes, where they live (client or server), and where its code runs. Available without a new compile for projects compiled since 23 Oct.Observedexotool_inspect_diagram description and output on Sponsor DeskHigh
Visual flows with conditional connectors, sheets, symlinks, sub-views and calls with error hooks. A step debugger shows client and server statements waiting at the same time, plus a Variables window filtered by location.ObservedEditor guide §2, §6, §13–14High (from docs; canvas not viewed)
Reusable parts: placeholders, presets, extract and insert of parts, and a “complete cluster” check before a move or copy.ObservedEditor guide §8; MCP tool list; Sponsor Desk inspection (“Cluster: COMPLETE”)High
Live messaging between users (signal and listen) built in; Sponsor Desk uses it for a “new commitment” notice.ObservedRundown; Sponsor Desk diagramHigh
A published API endpoint node turns a flow into a server-side endpoint, and Exotool writes JavaScript and Python call examples for it.ObservedEditor guide §9High
A three-tier data store (single file, file-per-object, MySQL resource). Credentials stay in resources, outside the diagram.ObservedEditor guide §11High
45 copyable system samples, from widget demos to 10-screen apps (Expense Splitter, Field Service, Marketplace). An Expense Splitter Helper tour and a 55-rule Helper.Observedexotool_get_example; rundown (editor code dated 2 Nov)High
A capable builder can reach a high visual standard: Sponsor Desk's sign-in screen is polished at desktop and 375 px phone widths.ObservedScreenshots, 4 NovHigh for this app only
Fast response to feedback: about 40 dated fixes and features between 22 Oct and 2 Nov.ObservedRundown (dated code comments)High

2b. Friction, by person and journey stage

StageFindingTypeEvidenceConf.
Discovery (all)The editor sign-in page uses a plain blue bar, small grey labels, a “Sign In” list row that does not look like a button, and the line “the rapid Mobile Application Development System!!”. It does not show what Exotool makes.ObservedScreenshot of app.ops.exotool.com, 4 NovHigh
Sample selection (novice)Samples are listed by internal name (applib_028_expense_splitter, clent_call_test_5), with test fixtures mixed in among real starters. The element_gallery preview opens on “Hello World!” with a tab titled “My Mobile App”.ObservedSample list; element_gallery previewHigh
Visual editing (novice)The editor guide's best practices are mostly manual layout rules (about 15: arrows left to right, arrival slots, symlink placement, row layout). It also lists workarounds for known defects: form-field icons “do not render correctly”, and a Buttons Row in a form “does not behave as expected”. A link placed directly on a page is reported on save but not prevented in the editor.Observed / Inference: learning cost is highEditor guide §4, §12High (docs); editor not viewed
Flow logic (novice)The code needs a precise mental model in some places. JS blocks don't wait for pending server values. always runs only on the device and only after the flow first reaches it. Unpaired if_on_client bodies silently drop out (now a warning).ObservedLanguage §7, §9, §11High
Generated app (end user)Generated apps and the editor set user-scalable=no, maximum-scale=1. That blocks pinch-zoom, which the W3C treats as a failure for text resizing (ACT rule “Meta viewport allows for zoom”; WCAG 1.4.4, Level AA).ObservedSponsor Desk and editor HTML; Expense Splitter sampleHigh (3 pages; likely a platform template)
Generated app (end user)On the Expense Splitter sample, inputs have no programmatic label (only a placeholder), the placeholder is 35% black (low contrast), “Log In” is a link with href="#" rather than a button, and the page language is empty.Observed (one sample)Browser accessibility tree and DOM check, 4 NovHigh for the sample; platform-wide not established
Installability and offlineApps declare offline support with <html manifest="manifest.php">, which is AppCache. Chrome removed AppCache in 2021, Firefox removed it, and Safari deprecated it in 2018 (web.dev, “Preparing for AppCache removal”). No link rel="manifest" or service worker was found in the generated pages checked. iOS “add to home screen” meta tags are present.Observed / Inference: offline and install prompts do not work in current Chromium browsersSponsor Desk and editor HTML; sample DOM check; rundownHigh that the markup is legacy; medium on the exact effect per browser
Visual system3 app-level themes (“material default”, “iOS default”, “iOS Fancy”). Other styling is per-element presets. The preset IDs look like PHP uniqid values from 2016. Front end: Framework7 1.4.Observed / Inference on agePreset catalogue; rundownMedium-high
Versioning (agency)4 automatic backups per project, plus a Backups page. Named versions, branches or comparisons between versions were not found.Observed / not foundMCP instructions; rundownMedium (editor not viewed)
Portability (agency)Projects can be copied inside Exotool. A downloadable export of the diagram, assets and compiled app was not found in the docs checked.Observed / not foundEditor guide; MCP tool listMedium
Permissions (all)Access control is written inside activities with functions such as is_admin_user() and get_current_session(). The docs warn that the device-side user_is_admin must not decide sensitive operations. Declared record-level rules (“only the owner may edit”) were not found.Observed / Inference: security depends on every builder writing checks correctlyLanguage §13High
Correctness vs compileSponsor Desk compiles with 0 errors on revision 25. That shows the design is well formed. It does not show the business behavior is right or that data access is secure.Observedexotool_get_build_errors, 4 NovHigh
Live messagingBroadcasts send the message in the URL of a GET request, and the channel key is optional in client code.Observed (client) / Inference on server enforcementRundownMedium; server code not seen
Agents (builder)Claude can edit through MCP, the editor shows “Claude: <action>” notices, and there is an MCP Tokens page. Helper Ask exists, but whether it is enabled on the live server is unknown.ObservedRundownHigh / unknown for Ask

2b-ii. The journey for three people

StageNovice building a first useful appExpert or agency maintaining several appsPerson using a finished app
Discovery and onboardingFriction: the sign-in page shows no examples of output; the tour exists but has to be found ObservedStrength: MCP lets an assistant do repetitive edits ObservedFirst screen quality depends on the builder. Defaults look dated; custom work (Sponsor Desk) looks current Observed
Choosing a starting point45 samples, named by internal ID, mixed with test fixtures ObservedCopying a project is reliable and complete Observed (docs)n/a
Visual editing and flowsMany manual layout rules to learn Inference from the docsSheets, symlinks, sub-views and calls scale to large apps Observed (docs)n/a
Debugging and error recoveryHelper cards explain compile and deploy failures in plain words Observed (rule table)Step debugger across client and server; errors with paths; undo ObservedServer errors retry; failures show as alerts. Offline reload is not supported in current Chromium browsers Inference
Design and accessibilityDefault theme and small type; zoom is blocked ObservedMust restyle each project by hand, in CSS or templates InferenceNo pinch-zoom; labels missing in the sample checked Observed
Integrations and permissionsResources keep secrets out of the diagram Observed; permission checks must be hand-written ObservedSame rule code repeated across apps InferenceData safety depends on each builder's checks Inference
Versions, portability and maintenanceUndo covers a bad save Observed4 backups; no named versions or export found Observed/not foundPlatform updates apply on recompile Inference

2b-iii. Visual design: observed defects and opportunities

Observed defects (editor sign-in page, Expense Splitter sample, element_gallery sample; screenshots of 4 Nov):

Design opportunities Proposal (the editor canvas was not viewed, so these are not defect claims):

2c. Comparison with AI-first and established visual builders

I compared the same job across seven products, using their own docs as of early November 2026. Some pages were read from short page summaries rather than in full, so treat details as “per the vendor's page”. “Not found” means not found in the pages checked. It is never a claim that the feature is absent.

The same task in each product

Task: add a form that logs a sales activity, saves it with server-side validation, lets only the record's owner edit it, and notifies teammates live. (Sponsor Desk's “Log activity” is the Exotool version.)

ProductHow it is builtServer-side validationOwner-only editsLive notice to teammates
ExotoolVisual popup and form plus one activity. Prompt through Claude over MCP, or by hand.The same activity code. Checks the compiler places on the server; if_on_server with abort() (Language §9).Written as a session or role check inside the activity (Language §13). No declared rule found.Built in: signal and listen, already used in Sponsor Desk.
LovablePrompt, after an approved plan (Plan mode). Generates code.Edge function or database constraint, written by the AI (Cloud).Database row-level security (RLS), set through chat (database access), and checked by a Deep scan (security).Realtime is listed in Cloud (Cloud).
Bolt.newPrompt, after Plan Mode. Generates code.Server functions (docs).Database security settings; audit on paid plans (security).Not found.
Replit AgentPrompt, plan, then build (docs). Generates code.Server code the agent writes, on managed PostgreSQL (docs).Custom code with Replit Auth (checklist).Not found.
BubbleAI Agent prompt with Ask, Auto or Approve modes (docs), then visual workflows.Backend workflow; front-end and back-end workflows are built separately.Declared privacy rules on the data type (privacy).Not confirmed in pages checked.
FlutterFlowVisual actions. External coding agents propose changes you review (AI agent).Cloud Functions (docs) or database rules.Firebase or Supabase rules (product).Through Firebase or Supabase streams (not read in full).
GlideChat-built app and tables (GlideOS).Not found.Row owners (first-party blog).Not found.
RetoolVisual queries, or an agent through MCP (docs).Server-side queries or workflows.Row-level security and access policies (docs).Live push to end users not found; editors collaborate live (multiplayer).

What this shows. In the pages checked, no other product documents doing validation and saving in one piece of logic without a separate backend step, or a live notice as a built-in element rather than a database feature. That is a lead worth checking, not proof of exclusivity. Exotool is behind on one point: owner-only access. Bubble, Lovable and Retool make it a declared rule that can be checked or scanned. In Exotool it depends on the builder remembering to write the check.

Common expectations, plausible differentiation, and what could become hard to copy

CategoryCapabilityWho documents itExotool today
Common expectations (table stakes: buyers assume them)Prompt or AI help to buildAll seven checkedThrough Claude over MCP; Helper Ask status unknown
Plan shown before changes, then approveLovable, Bolt, Replit; Bubble's Approve modeNot as a visible step (R5)
History with restoreLovable (history), Bolt (rollback), Replit checkpoints with database (docs), Bubble 14 days to 1 year by plan (docs)4 backups, one-step undo (R5)
Declared row or owner access rulesBubble, Lovable, Retool, GlideWritten as code (R9)
Code or project leaves the platformGitHub: Lovable (docs), Bolt, Replit, FlutterFlow (docs). Bubble: data export only (docs)Not found (R11)
Mobile outputNative via Expo: Bolt (docs), Replit (docs). Installable offline PWA toggle: FlutterFlow (docs)Legacy AppCache markup (R2)
Plausible differentiation (others offer parts of it)Security review of an appScanners: Lovable (Business and Enterprise), Bolt (paid audit)R7 would explain where data lives from compile facts, not by pattern-scanning code
Outside assistants run an app's own workflowsBubble Workflow API (docs); Retool webhooks (docs). Lovable's and Bubble's MCP servers edit the builder, not a finished app's workflows (Lovable, Bubble)API endpoint node exists; R8 would publish it as MCP tools that run as a user
AI steps inside finished appsGlide AI columns and actions (docs); Lovable AI connector (docs)R13
Could become hard to copy (needs a compiler that understands the whole app)One body of logic split automatically into device and server, with explicit hints when neededNot found in the other products' docs checked (Bubble keeps the two separate by design)Exists
A per-element map of what runs where and which data reaches the device, used for review, reports and agent editsNot found in the docs checkedThe data exists (compile facts); the product surface does not (R5, R7)
A step debugger over client and server statements at onceNot found in the docs checkedExists (Editor guide §13)

Products not covered: DreamFlow, Softr, Adalo and all pricing pages. Plan gating is shown only where a page stated it.

2d. Agents in three roles

Sponsor Desk is used as the running example. Each role applies equally to any Exotool app.

RoleA real user jobWhat Exotool can reuseMinimum new capabilityOngoing operating burden
1. Assisting the builder in the editor“Add a ‘Log activity’ popup that saves a note, moves the stage and sets the next follow-up.” Or: “Why is my save failing?”MCP patch, validate, undo, inspect and examples; Helper rules and cards with element links; compile errors with paths; “Claude:” notices.Helper Ask grounded in the current diagram, compile errors and the docs. It proposes a patch and shows it as a reviewable change (recommendation R5). The builder accepts it, and the change is saved with the existing backup and undo.Model charges per question (bring-your-own key or a metered plan); prompt and docs upkeep as the language changes; support for wrong suggestions. Undo limits the damage.
2. Bounded work inside a finished appIn Sponsor Desk: “Draft a follow-up email from this sponsor's last three activities,” or “Summarise this week's pipeline changes for the Monday meeting.”Server-side activities, cloud sets, SMTP resource, PHP blocks, resources for credentials, the location model that keeps keys on the server.A server-only ask_model(prompt, schema) built-in that returns typed fields, with the key held in a new “AI model” resource and a per-app spending cap. The output is a draft the user approves; it never auto-sends.Per-call model cost (owner pays or passes through); rate limits; logging prompts for support; data-handling statement for customers.
3. An external assistant invoking an app workflowA sales lead in Claude or ChatGPT says: “Log a call with Acme, move them to Proposal, follow up Friday.” The assistant runs Sponsor Desk's own validated flow.The API endpoint node (server-side, typed inputs and outputs, generated call examples); the MCP Tokens page; sessions and roles.Publish each endpoint node as an MCP tool (and OpenAPI), with a per-app token scoped to named endpoints and tied to a user, so the app's own permission checks run as that user. Add an audit log of calls.Token issuance and revocation UI; abuse and rate limits; versioning endpoints when an app changes; support for clients' assistant setups.
Where a conventional workflow is simpler. “Tell the team the moment a sponsor commits” needs no agent. Sponsor Desk already does it with a signal and listen pair. It runs instantly, costs nothing per event and behaves the same way every time. A plain form is also better than a chat agent for moving a deal's stage: two taps, no ambiguity. Recommend agents for drafting, summarising and cross-tool requests, not for fixed, frequent, rule-based steps.

3. Prioritized recommendations

Ranked on user benefit, strength of evidence, reuse of what exists, and ongoing burden. Refinement means it ships within the current design. Extension means it changes the architecture or the data model. Effort is relative: S (small), M (medium), L (large).

#User and problemSpecific changeReusesNew developmentExpected benefitKindEffortConf.
R1End users who need larger text or use screen readers; agencies with accessibility obligations.In the generated shell and the editor: allow zoom (drop user-scalable=no and maximum-scale), set lang, render submit links as <button>, add <label for> to inputs, raise placeholder contrast, show a visible focus ring.The shell template and element templatesTemplate edits; a check that custom CSS still fitsRemoves clear WCAG failures in every app on its next compileRefinementSHigh
R2End users on phones; owners who expect “install” and offline use.Replace <html manifest> AppCache with a web app manifest (name, icons from the existing icon pipeline, theme colour) and a service worker that caches the app shell. Phase 2: queue writes made offline.The icon generator, the compiled asset list, the per-app preview URLService-worker generator; cache versioning per compile. Phase 2 needs sync and conflict rules.Install prompts and fast reloads in current browsers; “PWA” becomes literally trueRefinement (shell). Phase 2 is an extension.S–M, then LHigh (legacy markup observed)
R3Novices whose first app looks dated; agencies who restyle every project.A new “2026” app-level preset built on design tokens: 16 px base text, a 1.25 type scale, a 4/8 px spacing grid, primary, secondary and quiet button styles, hover, focus, disabled and error states, 44 px touch targets, and light and dark modes. Existing presets stay unchanged.The viewpool preset system; templatesToken CSS layer on top of Framework7 1.4; restyling of about 30 element typesBetter first impressions; less per-project CSS; consistent qualityRefinementMHigh on need; medium on scope (Framework7 limits)
R4Novices facing 45 unlabelled samples.A “Start from a goal” picker: about 8 curated starters (booking, CRM pipeline, field service, directory, expense split, store, loyalty, internal tool) with screenshots and plain names. Hide test fixtures. Fix showcase samples that open on “Hello World!”. Each starter launches its Helper tour.Samples, copy project, Helper tutorials engineCuration, screenshots, a picker page, 2–3 more toursShorter time to a first useful appRefinementS–MHigh
R5Experts and agencies making many or AI-made edits; novices unsure what a save did.A “Change review” strip after each save: the elements added, changed or removed (highlighted on the canvas through the Helper bridge), compile status, who made the change (you, Claude, a teammate), and Undo. Keep 20 backups and let a backup be named.Save and patch summaries, backups and undo, revision checks, Helper highlight and go-to, “Claude:” noticesSummary to canvas-highlight mapping; a longer backup historyTrust in AI and bulk edits; faster recovery; fewer support ticketsRefinementMHigh
R6Novices fighting layout rules and known defects.Turn the best-practice list into editor behavior: auto-route connectors and auto-place new activities to the right; block or auto-wrap a link dropped on a page; fix form-field icons and Buttons Row, or hide them until fixed; flag an unconnected symlink live.Auto Reposition, structural checks already run on save, Helper rulesEditor interaction workFewer silent failures; less to memoriseRefinementMMedium-high (canvas not viewed)
R7Agencies and owners worried about risk.A data-exposure report per compile: which variables reach the device, which flows run on the server, which API endpoints exist, where raw JS or PHP blocks bypass analysis, and which activities lack a session or role check.Compile facts, the API node list, the Helper rules engineReport page and a few new rulesA concrete answer to “is this app safe?”; a strong sales assetRefinementMMedium-high
R8Agencies and clients whose staff work in AI assistants.Endpoint nodes published as MCP tools and OpenAPI, with app tokens scoped to named endpoints and bound to a user, rate limits and an audit log.API node, generated call examples, MCP Tokens page, sessionsToken scopes, a tool descriptor generator, audit storageEach app becomes usable from assistants without new codeExtension (new auth surface)M–LMedium
R9Novices who forget a permission check; owners needing assurance.Declared access rules on cloud objects (for example “owner may edit”, “role ‘manager’ may read all”), enforced by the compiler on server paths and shown in the R7 report.Cloud object types, sessions and user types, server placementRule syntax, compiler enforcement, a migration default (no rule = current behavior)Secure by default instead of secure if rememberedExtensionLMedium
R10Builders stuck on a compile error or a design question.Enable Helper Ask, grounded in the diagram, errors and docs. It answers with element links and an optional patch that goes through R5.Helper Ask box, rules, MCP patch pathModel integration, grounding, cost controlsHelp at the moment of needRefinement plus a recurring costMMedium (current status unknown)
R11Agencies needing exit options and audits.Project export: the diagram JSON, assets and the compiled bundle as a download, plus import.The JSON diagram, the compile output, copy projectPackaging, import validation, licence termsReduces lock-in fear in salesRefinement (commercial decision)S–MMedium
R12Users of real-time features.Move broadcasts to POST, require a channel key or session server-side, and consider Server-Sent Events for delivery.Signal and listen elementsTransport change behind the same elementsSafer, faster live updates with no diagram changesRefinementS–MMedium (server not seen)
R13Owners wanting AI inside their apps.The server-only ask_model built-in with typed output and spending caps (Agents role 2).Location model, resources, PHP runtimeBuilt-in, resource type, meteringAI features without exposing keysExtensionMMedium

3b. Steps that widen the moat and make Exotool much more useful

A moat is an advantage that grows with use and that a competitor cannot copy quickly. Section 3's table fixes what users expect. This section is about what could make Exotool hard to replace. One distinction matters:

The steps build on each other. Each one makes the next more valuable.

StepWhat to buildWhy it is massively useful to usersWhat it builds onWhy it is hard to copy, and what could erode itCopy resistance (inference)
1
Make the compiler's knowledge visible
The change review strip (R5) and the data-exposure report (R7): for every save, show what changed, what runs where, and what data reaches the phone.A builder can answer “what did the AI just do?” and “is client data exposed?” in seconds, without reading code.Compile facts, save summaries, backups and undoRivals review code diffs (Lovable history, Replit checkpoints). Exotool can explain behavior and data placement. Erosion: rivals adding strong static analysis to generated code.Medium-high
2
Make safety part of the app model
Declared access rules (R9) checked at compile time. A save, by a person or an AI, that breaks a rule fails like a syntax error and is never published.Apps are secure by default instead of secure if remembered. Owners can promise clients that an assistant cannot ship an app that breaks its own rules.Step 1, the compiler, cloud object types, sessionsBubble, Lovable and Retool have declared rules too. What is uncommon is the compiler blocking a change that breaks them. Erosion: rivals adding pre-deploy policy checks.Medium
3
Generate behavior checks from the flows
Because each flow is an explicit graph, Exotool can create test scenarios on its own (for example “a non-owner tries to edit, and is refused” or “a save with an empty amount is rejected”) and run them on each compile.It closes the gap between “it compiles” and “it works”. Users find broken business logic before their clients do.Flows and conditions in the diagram, Step 2's rules, the debugger runtimeCode tools can write tests, but must first work out the flows from the code; Exotool already has them as data. Erosion: AI test writers improving quickly.Medium
4
A library of verified parts, with an agency marketplace
Parts (login, booking, payments, sponsor pipeline, maps) that carry their own facts: what data they touch, where they run, which rules they need. The exposure is shown before a part is inserted. Agencies can publish and sell parts.Novices build real apps from tested blocks. Agencies earn from their best work and build faster.Extract and insert part, the cluster check, presets, Steps 1–3This is a network effect: each new part makes the platform more useful, which brings more builders, who add more parts. Erosion: low early on. It needs a critical mass of parts and a good quality bar.High once it has scale
5
“Assistant-ready” apps by default
Every API endpoint node becomes a typed MCP tool (R8) that runs as a user, obeys Step 2's rules and is listed in Step 1's report. The report tells an owner exactly what an assistant can and cannot do.Staff can run real business steps from Claude or ChatGPT safely, with no extra code and no extra integration project.API endpoint nodes, the MCP Tokens page, Steps 1–2Others expose apps through APIs and webhooks (Bubble, Retool). The edge is the combination: generated tools plus enforced rules plus an exposure report. Erosion: a common standard for agent permissions may arrive.Medium
6
Offline by design, not by effort
The compiler knows which writes are safe to queue on the device. It could generate offline queues and sync for those writes automatically (R2 phase 2).Field teams, events and venues with weak signal get apps that keep working, with no special build work.Device and server placement, the R2 service workerFlutterFlow documents an offline PWA option, but automatic queueing chosen by the compiler's placement is uncommon in the docs checked. Erosion: offline-first database products.Medium-high
7
A learning loop from real use
With owners' consent, use anonymous, combined counts of compile errors and Helper card outcomes to improve rules, tours and AI prompts every month.Help gets better the more people build; fewer users get stuck in the same place.The Helper rule table (data, versioned), compile reportsA data advantage that grows with usage. Erosion: weak unless usage grows, and it must respect privacy terms.Grows with scale
8
Make leaving easy, so joining is easy
Full export (R11) and a published app-model format.It removes the biggest fear of no-code buyers.The JSON diagram, compile outputThis is not a moat by itself. It lowers the price of trying Exotool, so Steps 1–7 reach more users. The compiler, parts and rules stay the reasons to stay.n/a (adoption lever)
The sequence I would choose: Steps 1 and 2 first, because they turn work you have already done into something users can see and buy. Step 4 next, because network effects take time to build, so the sooner the better. Steps 3, 5 and 6 then grow from the same foundation. Fixing the table-stakes items in section 3 (R1–R4) is still what lets prospects stay long enough to notice any of this.

3c. A working direction: the clickable mockup

To show what these recommendations look like on screen, I built a clickable mockup of the editor and of the Sponsor Desk app it generates: https://exotool-ui-mockup-preview.cyrusprescod.workers.dev/. Each figure below links to the exact screen, so you can try it.

Proposal What it is and is not. It is a design mockup. It is not built on Exotool's code and has not been tested with users. It does use real material from the Sponsor Desk project (revision 25): the element keys, connector conditions, and the code facts from your compile report of 2 November. All sponsor data is fictional.

Every part maps to Exotool. The mockup has 49 labelled parts. 27 use Exotool exactly as it is today, 9 show an existing feature better, and 13 are proposals. Each proposal names the existing feature it builds on. The mockup's Feature map view lists all 49.

Mockup of the Exotool editor showing the Helper panel, the Sponsor Desk canvas with device and server badges, the properties panel with code facts, and a Change review window with a pending fix from Claude
Figure 1. The editor. A Helper card offers “Fix with Claude” (R10). The fix does not save straight away; it appears in Change review as a diff, beside the last save and named versions (R5). Activities carry device and server badges, and the properties panel lists what reaches the device, from the compile report (R7). The palette is grouped by what you want to do, and a dropped link is guided into a link menu (R6). Open it.
Data exposure report listing what reaches the device, server-side checks, raw PHP blocks, API endpoints and the live channel
Figure 2. Data exposure report (R7). Built only from facts the compiler already produces. One finding is real: act_refresh sends the whole sponsor record (d_sp) to the phone. Access rules (R9) sit in the next tab. Open it · Access rules.
Details window with preview link, install and offline settings, assistant tools, export and live channel settings
Figure 3. Details. Today's settings (preview link, debugging, app icon, frames) beside four proposals: install and offline (R2), API endpoints as assistant tools (R8), a project export (R11), and a signed key for live channels (R12). Open it.
Sponsor Desk dashboard on a phone with an install banner, goal progress, totals and funnel Sponsor detail screen at 200 percent text size, reflowed to fit the phone Sponsor detail screen with a New commitment notification at the top
Figure 4. The generated app, same pages as today. Left: the dashboard with an install banner (R2) on a 2026 theme (R3). Middle: the sponsor page at 200% text, still fitting the screen, because zoom is allowed and the layout reflows (R1). Right: the existing signal and listen pair delivering “New commitment” (R12 makes the channel safer underneath). Dashboard · 200% text · Live notice.
New project dialog with goals mapped to system samples, theme presets and resource roles
Figure 5. New project (R4, R3). Each goal copies a real system sample. The three existing presets sit beside one proposed 2026 theme, and services use today's resource roles. Open it.

How each recommendation shows up in the mockup

Rec.What you seeBuilds on (exists today)Try it
R1Text at 200% that reflows; labelled fields; buttons instead of linksGenerated viewport, form inputs and buttons200% text
R2Install banner, offline banner, “Installable app” settingApp icon, preview buildOpen it
R3Light and dark 2026 theme; a fourth preset in New project3 theme presetsOpen it
R4Goals that copy a sample45 system samples, copy projectOpen it
R5Change review with diff, undo and named versionsSave summary, 4 backups, undoOpen it
R6Palette by intent and search; guided link dropElement palette; nesting check in save and patchEditor
R7Device and server badges; code facts; Data exposure reportCompile-report code facts (since 23 Oct)Open it
R8“Offer API endpoints to assistants as tools”API endpoint node and its call examplesOpen it
R9Read, change and delete rules per cloud object typeCloud object types, sessions, roles tableAccess rules
R10“Fix with Claude” on a Helper card, landing in Change reviewHelper rules, MCP patchOpen it
R11An “Export project bundle” button onlyDiagram JSON, extract partOpen it
R12Signed-key setting; the live noticeSignal and listenLive notice
R13Not shown. AI inside finished apps needs its own design.––
What building the mockup showed. Most of the proposals need no new engine. R5, R7 and R10 reuse data Exotool already produces: the save summary, the compile report and the Helper rules, joined to the MCP patch. R1 and R2 are changes to the generated output, so every app improves on its next compile. The mockup cannot show two things: whether new users read the labels as intended, and whether the PHP server side supports R9 and R12 as drawn. On that basis, the first working slice I would choose is R1 and R2 (output), then R5 with R10 (editor), then R7.

4. Before and after

Example A: one editor change helps a novice and an expert Hypothetical

The change is R5 (Change review) with R6 (auto-placement).

Before

Novice, Maya: She asks the assistant to “add a way to log a call.” It saves. A popup appears somewhere on sheet 0, partly behind another screen. She can't tell what changed, opens the preview, taps around, and isn't sure the call was saved.

Agency lead, Dev: He applies the same edit to 6 client copies of a CRM. He relies on memory and the 4 most recent backups, and finds a broken connector two days later.

After

Maya: After the save, a strip reads “Added: Log activity popup, Save activity flow. Changed: Sponsor page menu. Compiles ✓ · by Claude · Undo”. Each item is a link that highlights the element, placed to the right of its trigger with straight arrows. She clicks “Save activity flow” and sees what it does.

Dev: Each copy shows the same strip. One reports “1 warning: connector without condition”. He names the backup “before call-log rollout” and fixes the warning in place.

See it in the mockup: Change review with a pending fix (Figure 1).

Example B: a finished app for its end user Hypothetical, using Sponsor Desk

Before (today's markup)

Priya opens Sponsor Desk on her phone at an event. The text on the pipeline cards is small, and pinch-zoom does nothing. There is no “Install app” prompt, so she keeps a browser tab. In a basement hall with weak signal the page fails to reload, and her notes from a sponsor chat sit unsaved.

After (R1 + R2 + R3)

Chrome offers “Install Sponsor Desk”, and it opens from her home screen in under a second from cache. The text is 16 px and zooms when pinched. Buttons are 44 px tall with clear pressed and disabled states. Offline, the app opens and shows “You're offline. Changes will send when you reconnect” (phase 2 of R2). The commitment banner from a teammate still arrives through signal and listen when she is back online.

See it in the mockup: install banner, 200% text, offline (Figure 4).

5. Owner-side scope and cost

Relative estimates only. I don't know your team size, rates or hosting contracts, so no calendar or dollar figures are given. S, M and L compare items with each other.

GroupItemsDesign laborEngineering laborMigration and compatibilityRecurring infrastructure or model chargesSupport
Near-term refinementsR1 accessible shell · R2 phase 1 manifest + service worker · R4 goal-based starters · R12 messaging transport · R11 exportS (R4 curation and screenshots)S–M in totalLow. Apps pick up changes on recompile. Check that custom CSS in agency apps survives R1 markup changes. A stale AppCache needs a one-time clean-up.Near zero. Static files and a little more caching.Low; a short “what changed” note
Next investmentsR3 2026 theme · R5 change review · R6 editor guardrails · R7 exposure report · R10 Helper AskM (R3 tokens and states; R5 strip; R6 interactions)M each for R5, R6 and R7; M for R3 restylingR3 is opt-in per project, so no forced migration. R5 raises backup storage (for example from 4 to 20 per project).R3, R5, R6 and R7: little vendor spend beyond storage. R10: per-question model charges unless you use bring-your-own key.Medium for R10 (wrong answers); low otherwise
Longer-term betsR8 agent-callable endpoints · R9 declared access rules · R13 in-app ask_model · R2 phase 2 offline writesS–ML for R9 and R2 phase 2; M–L for R8 and R13R9 needs a default of “no rule = today's behavior” so existing apps keep working. R2 phase 2 needs conflict rules for shared data.R8: token and audit storage, rate limiting. R13: model charges per call (pass-through or metered).Medium–high: customers' assistant setups, token resets, AI output questions

Assumptions that change cost the most.

Little extra vendor spend, but still development time: R1, R2 phase 1, R3, R4, R5, R6, R7, R11 and R12. All of these are template, editor or report work on infrastructure you already run.

6. The recommendation to lead with in sales

The pitch: “With Exotool, you or your AI assistant describe a change, and the platform checks it before it goes live. It compiles, it's backed up, and it can be undone in one step. You never hand-write the plumbing between phone and server, because the compiler places every piece of logic itself.”

What supports it today. Revision checks refuse stale edits. A backup is made before every save, patch and undo, and one-step undo exists. Compile and structural errors come back with exact paths, and the docs say they are checked before anything is called done. Per-element compile facts show where each piece of logic and data runs. Sponsor Desk, an 18-activity, 6-screen app whose diagram metadata shows it was edited through MCP, compiles with 0 errors on revision 25. All of this is Observed in the MCP tools, the docs and the rundown.

What must exist before you claim the stronger version (“an AI can't ship an unsafe or broken app on Exotool”):

Thank you for building something with a genuinely different core. I hope this helps you choose what to do next.

Cyrus Prescod