Open-source project
Instawork/hyperview avatar
Instawork/hyperview

Hyperview for Server-Driven React Native Apps

Server-driven mobile apps with React Native

1,721 stars89 forksTypeScriptMIT

At a glance

What is it?
Hyperview is an MIT-licensed React Native client that renders Hyperview XML delivered over HTTP. It fits teams that want backend-controlled screens and actions, but it introduces a server-side interface contract and an XML-specific application model.
Who is it for?
Adopt Hyperview when the product team wants backend-controlled mobile screens, already operates an HTTP service, and can maintain Hyperview XML as an application contract. Do not select it for a conventional client-rendered React Native app without accepting backend availability and remote XML behavior as product concerns.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Hyperview XML Moves Screen Ownership to the Backend

Hyperview addresses a specific mobile delivery problem: changing screens, content, and available actions without shipping a new React Native bundle for every server-side change. Its Hyperview XML format, abbreviated as HXML, describes the mobile interface rather than serving only application data. The React Native client fetches HXML from a server and renders it inside the mobile app. According to the README, that backend response controls layout, content, and the actions available to the user.

This approach is aimed at teams whose mobile interfaces change frequently or whose screens need to originate from a shared backend. The server can be built with Django, Rails, Node, or any other HTTP server. The README also explicitly supports deployment as static XML files. That is a meaningful deployment choice because the application does not inherently require a dynamic application server, although the client still needs an HTTP location from which to fetch its content.

HXML is distinct from returning JSON and rendering the final interface in React Native components. In Hyperview, the remote document participates in presentation and interaction. That can place interface changes in a backend service, but it also makes the XML schema and server response important parts of the client contract. The repository includes a `schema/` directory, XML validation tooling, examples, and documentation links, which confirms that the format is intended to be formalized rather than treated as arbitrary markup.

Hyperview Fits Existing React Native and Standalone Apps

The TypeScript package identifies itself as a React Native client for Hyperview XML and exposes `src/index.ts` as its main entry point. The README says that the client can be incorporated into an existing React Native project or used to create a self-contained app. This means a team can add the client to an established React Native application rather than treating the repository's demo as the only possible starting point.

The expected data path is conceptually simple. A React Native screen requests an HXML entry point, receives XML over HTTP, and the client maps supported HXML structures to native React Native components and actions. Claims about a particular HXML element should therefore be checked against the formal Hyperview XML reference and the documentation for the selected project version.

The package metadata lists navigation and React Native peer dependencies, while the README lists version ranges for React, React Native, WebView, gesture handling, safe areas, date-time selection, and pickers. The current `package.json` shows different ranges from some of those README requirements. For example, the README lists React `>= 18.3.1` and React Native `>= 0.76.7`, while the package metadata requires React `^ 19.2.0` and React Native `>= 0.86.0`. An implementation should follow the package metadata for the release being installed and resolve any compatibility issue before building the app. This discrepancy is a concrete upgrade consideration, not a reason to infer that either dependency set is universally correct.

Demo Installation and First Hyperview Request

The repository provides a demo XML server and an Expo project. The documented setup starts by enabling Corepack and installing the pinned Yarn version from `package.json`. Run these commands from the repository's `demo/` directory:

sh
corepack enable
yarn

The first command enables Corepack. The second installs the demo dependencies. The README says this installation step needs to be performed only once.

Start the demo server from the same directory:

sh
yarn server

The documentation states that this starts an HTTP server on port `8085`. The Expo client can connect to this example XML server or to another Hyperview endpoint. The demo uses a local development build rather than Expo Go, so the next step depends on the target device.

For an iOS simulator, run:

sh
yarn ios

For an Android emulator, reverse the server port and launch Android:

sh
adb reverse tcp:8085 tcp:8085
yarn android

The reader should see the HTTP server available locally and the demo app launched in the selected simulator or emulator. For a physical device, the device and development machine must share a Wi-Fi connection. Replace `X.X.X.X` with the development machine's IP address:

sh
BASE_URL="http://X.X.X.X:8085" yarn ios --device

The documented iOS flow opens the terminal QR code through the Camera app. The Android flow launches Hyperview's development launcher and uses the development address. These are development commands tied to the demo, not a documented production deployment procedure.

Development Sync Changes the Demo Node Module

Hyperview's development workflow includes a synchronization command intended for people changing core library files. Run `yarn sync` from the `demo/` directory. The README states that this copies files from `hyperview/src` into `demo/node_modules/hyperview/src` and watches for additional changes. This makes the demo consume local client source changes without requiring the development team to manually copy each file.

The command can also receive the root path of another React Native application that has Hyperview installed:

sh
yarn sync ../projects/my-cool-app

That form performs the same copy and watch operation against a separate project. The README identifies `Ctrl` plus `C` as the way to stop the process. This workflow is useful when the example server is not the focus of the task and the client itself is being modified. It also introduces an important operational distinction: the demo uses a local copy for development, while an installed package is normally consumed as a dependency. Changes under `hyperview/src` should not be assumed to affect the demo unless the documented sync workflow is active.

The repository also exposes validation and test scripts in `package.json`. Its complete `test` script runs TypeScript checking, linting, unit tests, and XML schema validation. The XML validation command searches `test` and `src` for XML files and validates them against `schema/hyperview.xsd` using version 1.1. The existence of these commands indicates that HXML correctness is checked as part of the project's development process. It does not, by itself, prove that every production server response will satisfy the schema, so deployment validation remains necessary.

The Main Trade-Off Is Remote Interface Control

Hyperview's central benefit is server control. A backend deployment can change the layout, content, and actions exposed to the installed client, according to the README. Static XML hosting is also supported. For organizations that want to change a mobile workflow without waiting for a store release, this can remove a release dependency from the path between a server change and an updated experience.

The cost is a remote dependency at runtime. If the XML endpoint is unavailable, returns invalid content, or produces an HXML structure the installed client does not handle correctly, the affected mobile experience can fail even while the React Native bundle itself remains installed. The repository documentation does not specify offline behavior, retry policies, cache controls, authentication requirements, or a rollback procedure. Those points must be checked in the formal Hyperview documentation and in the application's own server configuration before relying on remote updates for critical screens.

There is also a contract-management trade-off. The README claims that Hyperview removes the need to maintain older app versions because users receive the current server-side code. That claim applies to content and behavior delivered through HXML, not automatically to native dependencies or client capabilities. A user can still run an older installed client, so HXML should remain compatible with the client versions actually present in the mobile distribution. The package's peer dependency ranges and release history are therefore relevant to upgrade planning. The repository is not archived, and its last push was on 2026-10-16, with recent releases including v0.112.0 on 2026-09-30, but those facts do not replace compatibility testing.

Alternatives to Hyperview and Its License Implications

The practical alternative is a conventional React Native architecture in which the client defines screens in TypeScript and a backend returns JSON or other data. That approach keeps the user interface inside the installed application and gives the client direct control over component behavior. Its tradeoff is that interface changes usually require an app release and store distribution, while the client and its supported API versions must be maintained.

Another alternative is a hybrid design. The React Native application owns stable navigation and native components, while a server supplies bounded content or configuration through an API. This preserves client-side rendering for many interactions and reduces the amount of remote behavior the client must interpret. Hyperview differs by allowing the server to describe the screen and its available actions in HXML rather than merely supplying values to already-defined components.

Hyperview's repository declares the MIT license in both the package metadata and `LICENSE.md`. That license permits broad use, modification, distribution, and sublicensing subject to its notice conditions, but this review does not provide legal advice. Teams should still inspect the exact license file and any dependency licenses before shipping an application. The maintenance cost is also more than a one-time install: the XML schema, client package, peer dependencies, server responses, and supported HXML features need to be considered together when planning upgrades.

Editorial conclusion

Adopt Hyperview when the product team wants backend-controlled mobile screens, already operates an HTTP service, and can maintain Hyperview XML as an application contract. Do not select it for a conventional client-rendered React Native app without accepting backend availability and remote XML behavior as product concerns. Before adoption, verify the required peer dependencies, the HXML elements and actions used by the product, and the deployment path for the XML server. The first acceptance check should be the demo client connected to a controlled HXML endpoint.

Frequently asked questions

How do I install and run the Hyperview demo?

Enable Corepack, run `yarn` in `demo/`, then start the server with `yarn server`. The documentation says the server listens on port 8085. Launch the app with `yarn ios` or `yarn android`.

Does Hyperview require a dynamic backend server?

No. The README says any HTTP server can host a Hyperview app and that a collection of static XML files is also supported. The mobile client still fetches the XML from an HTTP endpoint.

Can Hyperview be added to an existing React Native application?

Yes. The README says the React Native client can be integrated into an existing React Native project or used as a self-contained app. The package metadata also lists React Native peer dependencies that must be compatible with the host project.

Official sources

  1. Instawork/hyperview on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/instawork-hyperview.svg)](https://hysenlabs.com/projects/instawork-hyperview)

Was this useful?