A Day app: one Rust codebase, native widgets on every platform.
Day compiles one backend per binary, so choose a target when you build or launch — a bare
cargo build enables no backend feature and will not link. The Day CLI supplies the right
feature for each target:
day doctor # check the toolchains for your targets
day launch -p windows-xaml # build + run
day build -p windows-xaml # build onlyTargets live in Day.toml. To use plain cargo, pass the backend feature yourself, e.g.
cargo build --features appkit (macOS) / --features gtk / --features uikit /
--features mdc (Android).
src/lib.rs— the UI (root()), shared across every platform: a typed-route sidebar (navigation) over four sample panels.src/pages/home.rs— signals in one glance: the reactive counter.src/pages/controls.rs— two-way bindings: toggle, slider, text field.src/pages/canvas.rs— a reactive display list drawn natively.src/pages/items.rs— a drill-down stack with data-carrying typed routes.resource/locales/en/app.ftl— every user-facing string (localization).dayscript/smoke.yaml— a dayscript UI test:day launch -p windows-xaml --script dayscript/smoke.yaml.platform/— the thin native host projects (Xcode / Gradle / hvigor) the mobile targets build through;day buildkeeps their identity in sync withDay.toml.Day.toml— app metadata + the target list.
day lint checks routes, element ids, and locale coverage.