Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

expo/exact

Developer Tools

Build one Contract UI in TypeScript or Rust and run it natively on web, macOS, iOS, and Linux.

762
18
Rust
MIT
10 days old

What it is

Exact is a cross-platform application runtime aimed at apps written largely by AI agents. You describe the interface in Contract, a small declarative language, and write data logic in TypeScript or Rust. The compiler turns the view into a compact plan: on the web the plan becomes an ES module over roughly a 20 KB runtime driving the real DOM; on macOS, iOS, and Linux a Rust runner executes the same plan, a Rust layout kernel computes boxes with CSS rules, and each host draws with AppKit, UIKit, or a GPU painter. There is no webview or JavaScript bridge in the UI (three principles, how it works).

The project is pre-1.0 with no API stability or migration guarantees. It expects coding agents to make, run, inspect, and test apps through ten host-independent operations exposed by scripts/agent.mjs.

Quick start

Prerequisites on macOS: Rust via rustup, the pinned Bun 1.4.2, Google Chrome, and Xcode. Hermes is only needed for TypeScript on native hosts; install it per target once with the documented installer (quick start).

git clone https://github.com/expo/exact.git
cd exact
bun scripts/exact.mjs setup
bun host/web/dev.mjs

Open http://127.0.0.1:8765/ to see the Caltrain app. The first run compiles the toolchain and takes a few minutes. Edit apps/caltrain/app.contract and save; the page rebuilds and reloads in about a tenth of a second. Add --lan to open it from a phone on the network.

To run natively on macOS:

bun host/apple/build.mjs --run

A first native build takes ten to fifteen minutes. Drive the app the way an agent does:

bun host/web/build.mjs caltrain-web
bun scripts/agent.mjs web tree "tap change-station" state "screenshot out.png"
bun scripts/agent.mjs web --test apps/caltrain/app.test.contract

To create a new app, use bun scripts/exact.mjs new ../hello, then run bun exact.mjs web inside it. exact new produces app.contract, app.ts, app.json, and small host crates, plus agent instructions pointing at start-here.md.

Constraints

  • Platforms: web, macOS, iOS (Simulator and devices), and Linux work today. Windows is partial; Android is early and has no store packaging; delivery and store packaging for Android are missing.
  • TypeScript imports: app.ts can import local files, but from npm packages only types, which are checked and never run.
  • No JSX or React tier: nothing runs JavaScript above the data seam.
  • Data and I/O: Contract has no I/O; data flows through a single typed source seam, with network, files, SQLite, and secrets gated by declared grants.
  • Editing and text: on Linux the host reads but does not edit; Linux also lacks word segmentation for Thai, Lao, Khmer, and Myanmar text.
  • Tooling: no packaged CLI; you work from a source checkout and exact new apps reference it by path.
  • License: the workspace is MIT-licensed.

HotRepo's take

Exact is part of Expo's early push toward agent-native app development, and the README is unusually detailed about the build loop, performance budgets, and current gaps. HotRepo recorded a single new-list snapshot on 2026-11-09: 264 stars with 130 gained in the reported window. That is too little history to judge trajectory, and best daily rank is not recorded, so treat the project as an actively moving pre-1.0 experiment: the goals are concrete, but the platform coverage and compatibility guarantees are explicitly unfinished.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

Hacker News

Exact – a new cross platform UI framework
▲ 134 · 107 comments · November 9, 2026

You might also like

  1. longbridge/nshA Rust-built native UI framework where apps and screens are written in TSX or Rust and rendered with each platform's own views.Rust614
  2. anomalyco/runeA GPU-rendered Rust UI framework with its own renderer, text, layout, springs and headless rendering for macOS, Windows, Linux and web.Rust6,702
  3. c22dev/muguetRun GTA V's web build as a native Apple Silicon app on macOS and iOS, with small-scale UDP multiplayer.Rust740
  4. argotorg/solidityA compiler and language for writing smart contracts that run on the Ethereum Virtual Machine.C++25,761