documentation
03 dashboard

Internal Apps

Internal Apps turn a plain-language ask into a working, single-page web app your team can use. An agent builds it, a visual check confirms it works and stays on the design system, and you publish it behind a token-gated URL.

What this page is for

Sometimes the deliverable isn’t a document or a research summary — it’s a small app: a status dashboard, a request intake form, a comparison tool. Internal Apps is the surface where an agent builds one for you and ships it.

You describe what you want; the app-builder agent writes the HTML/CSS/JS, runs a smoke check, and — once it passes — publishes the app to a URL. No build tooling, no separate repo.

The build loop

When an agent works an Internal Apps issue, it runs a tight loop with its own tools:

  1. app_create — scaffolds a new app in the project.
  2. app_write — writes the app’s files.
  3. app_check — runs a headless smoke check that loads the app and reports passed: true only when it renders without errors.
  4. app_publish — promotes a passing app to a live URL. app_rollback reverts to a previous version; app_archive retires it.

Two guardrails keep quality high (see Reliability & verification):

  • App visual verification — every app_write must be followed by an app_check reporting passed: true. The agent can’t claim “done” on an app that doesn’t load.
  • App design-system cohesion — generated HTML must use the platform’s --ds-* design tokens instead of raw hex colors, so apps look like part of Exolvra, not a one-off.

Where apps live

Each app belongs to a project. Open a project and use the Apps tab to see its apps, their publish status, and their URLs. Published apps are served behind a short-lived app token so they’re reachable without exposing the rest of the dashboard.

Starting one

Create an issue describing the app and assign it to an app-builder–capable agent, or ask the project’s PM to build one from a goal — the PM detects the need, spins up the work, and the agent runs the full app_create → app_write → app_check → app_publish loop. Watch it on the project’s Issues and Apps tabs.