Introduction
Hosanna UI is a TypeScript framework for building the shared application layer of Roku, Apple TV, Android TV, Samsung TV, iOS, Android, and Web apps. A Hosanna project shares views, state, focus, input, configuration, and business logic while each target keeps its own renderer, packaging, and native integrations.
Hosanna is class-based. It does not use React or JSX. A view extends
BaseView, declares reactive fields with @state, and returns a tree of view
structs from getViews(). The generator creates the typed factory and state
interfaces used by the rest of the app.
Start Here
Follow this path for a first successful run:
- Getting Started installs the locked dependencies and licensed SDK.
- Setup explains generation, validation, and target discovery.
- Hosanna Fundamentals
introduces
@view,@state,BaseView, andgetViews(). - Platform Support explains browser previews, vendor simulators, and physical devices.
- Running On Device
provides the current
hst runcommands.
Use the browser target for the shortest feedback loop, then validate every release on its native simulator or hardware target. A platform-shaped browser preview is useful for shared behavior, but it is not hardware certification.
Core Ideas
- Declarative views:
getViews()returns view structs such asLabel(...),Button(...),VGroup(...), and app-defined generated factories. - Reactive state: assigning an
@statefield invalidates the owning view and schedules reconciliation. - Generated contracts:
hst generate:allcreates typed state, factory, and command-map files. Generated output is not hand-edited. - Shared configuration: AppConfig supplies styles, fragments, translations, and other presentation data.
- Input and focus: remote, keyboard, pointer, and touch input enter shared framework pipelines, with platform-specific transports underneath.
- Target-specific boundaries: native services stay behind typed adapters or platform modules instead of leaking into shared screens.
Prerequisites
- Familiarity with TypeScript or modern JavaScript.
- Node.js and npm versions required by the application repository.
- A Hosanna license with access to the SDK/compiler needed by the project.
- The vendor toolchain for any native target you intend to build.
The current hosanna-ui-samples-public repository requires Node.js 24.17.0 and uses
the project-local @tantawowa/hosanna-tools package. Other applications should
follow their checked-in .nvmrc, package.json, package-lock.json, and
hosanna.json.