Skip to content

Introduction

inertia-hotwire-native lets an Inertia.js application run inside Hotwire Native (iOS & Android) and behave like a native app.

Beta & unofficial

This is a pre-1.0, community-built integration. It is not an official Inertia.js or Hotwire project, and the API may still change between beta releases.

How it works

Hotwire Native injects a turbo.js script into every web view that expects a window.Turbo object to drive. This package installs a small shim that maps the native adapter protocol onto Inertia's router, so Inertia pages push, pop, and restore as native screens — plus a web bridge so Inertia pages can use native bridge components (submit buttons, menus, etc.).

In a regular browser it stays inert: with no native adapter connected, Inertia navigates exactly as usual.

Two entry points

  • Framework-agnostic core (inertia-hotwire-native) — peer-depends on @inertiajs/core. Handles all navigation.
  • React bindings (inertia-hotwire-native/react) — optional, peer-depends on react. Provides useBridgeComponent for bridge components.

The ecosystem

RepositoryWhat it is
inertia-hotwire-nativeThe npm package
inertia-native-demoWeb / Rails demo app
inertia-native-ios-demoiOS Hotwire Native shell
inertia-native-android-demoAndroid Hotwire Native shell

Next: Installation.