← notes

Hotwire Native, and deciding which screens stop being web views

Jul 12, 2026

The working repo for One Shot. Same kit as shiponeshot; the piece specific here is mobile/.

Hotwire Native iOS and Android shells wrap the same web views the browser gets, and the trap is immediate: if the shell is only a web view, you have shipped a worse browser with a longer release cycle. What makes it work is the path configuration, which maps URLs to presentations and decides which screens render as web content and which get a native screen or modal. Anything with a heavy native affordance goes native. Everything else is a view already maintained, and maintaining it once is the entire reason to do this.

Bridge components are where the halves meet and they accumulate easily. Each one is a piece of the app that now exists in two languages and changes in both.

Solid Queue, Solid Cache and Solid Cable replace Redis, which at this scale is one less service to run and pay for.

The most active of the three One Shot builds.