Skip to main content

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:

  1. Getting Started installs the locked dependencies and licensed SDK.
  2. Setup explains generation, validation, and target discovery.
  3. Hosanna Fundamentals introduces @view, @state, BaseView, and getViews().
  4. Platform Support explains browser previews, vendor simulators, and physical devices.
  5. Running On Device provides the current hst run commands.

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 as Label(...), Button(...), VGroup(...), and app-defined generated factories.
  • Reactive state: assigning an @state field invalidates the owning view and schedules reconciliation.
  • Generated contracts: hst generate:all creates 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.

Talk to us