Code Lab
Exact Explained: Expo’s Contract UI Runtime and Agent Testing Loop
CODE LAB · PROJECT SPOTLIGHT
Exact TypeScript · MIT
Write an app once. It runs natively on the web, macOS, iOS, and Linux, and an AI agent can build it, run it, see it, and test it on every one of them.
Preview: GitHub · expo/exact
Exact explores what a cross-platform application stack looks like when agents need to build, see and test the same interface across hosts. Its Contract language is the central idea, not an assumption of ordinary React compatibility.
The Expo repository describes a declarative Contract interface with TypeScript or Rust application logic. It targets web and native hosts through its own compilation and runtime approach. The README labels the project pre-1.0 and warns of daily changes without API stability or backwards compatibility. Treat it as an evolving platform to evaluate, rather than a drop-in migration promise for an existing app.

What does Exact change in practice?
A small task list is a better first test than a full production port. Define adding, completing and deleting an item, then check the same behavior on the specific hosts available to you. Keep generated layout and application state distinguishable. A test passing on one host is useful evidence, but does not establish identical native behavior on every other platform.
Inside the source: an example app records persistence failures
This excerpt comes from the Agents example app, not the Contract compiler. Its persistence helper writes serialized conversations through atomicWriteFile and stores a visible notice when the write fails. It illustrates an ordinary application concern that remains important in an agent-oriented runtime: a UI should not quietly imply that data was saved when storage rejected the operation.
Source: apps/agents/app.ts at 8134f3a. License: MIT. Original source text retained; line numbers and syntax colors added for this article.
Source attribution and license notices
MIT License Copyright (c) 2026 650 Industries, Inc. (Expo) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Getting started
The README’s starting path uses the repository’s tool prerequisites, bun scripts/exact.mjs setup and bun scripts/exact.mjs new <path>, followed by docs/start-here.md. Its Mac example requires Xcode, Rust, Bun and Chrome. Choose an available target and follow its current guide; do not assume that all native targets build from a Windows-only environment.
Limits and what to verify
The published timing example was measured under specific cache and machine conditions, so it is not a universal setup estimate. The project also references private design records; the public guides are the accessible starting authority. The shown example source is MIT-licensed with Expo attribution. No cross-platform build, startup benchmark or application-port test was performed for this article.
Where it fits
Exact is useful reading for developers interested in agent-visible UI, deterministic test operations and an explicit interface language. A credible evaluation should record the exact revision, target host and behavior demonstrated, because those details matter more than a broad write-once headline.
Official references: Repository · README at reviewed revision · Release history · Exact source excerpt.
Reviewed November 15, 2026. Discovery credit: 민둥이 | 쉽게 배우는 AI, video published November 14 covering a November 12 repository selection. This article independently examines the official source; that historical ranking is not presented as today’s ranking.
