Startup screens

app/startup

Author loading and failure screens in Luau and export HTML/CSS during the web build.

Declare a separate app/startup module with its dependencies, then add startup: { entry: "app/startup" } to luastra.json. The module returns render() and optionally renderFailure(), each producing one UI.Screen.

Both functions run at build time in separate restricted VM sessions. No startup bytecode or author JavaScript is shipped. They cannot inspect the eventual network error, browser storage or runtime application state.

Screen, Column, Row, Text, Image, Shape, Divider and HTTPS Link are supported. Assets must be declared. Motion and ordinary event handlers are rejected. Only renderFailure may use UI.Button with onTap = "startup.retry"; the platform reloads the document for this action.

The host removes startup content after initialization and first paint. A failure reveals the prebuilt error screen and focuses its alert. Without renderFailure, the platform provides a default. With JavaScript disabled, an explanatory notice and HTTPS links remain available.

Startup uses one project-authored palette; automatic theme selection is intentionally outside this release. Native pre-WebView splash screens are not implemented. Startup screens were introduced in 0.4.0-alpha; earlier SDKs do not include this feature.

Detail pages

Loading and failure