Introduction
RubyEverywhere turns a plain Rails, Hanami, or Sinatra app into a real native app for macOS, iOS, and Android. No Electron, no rewrite. Your app runs as it is, wrapped in a native shell, with the Ruby runtime pressed alongside it into one self-contained binary when you ship a desktop app.
Two things stay the same however you ship: the
everywhere.yml that describes your app, and the
Bridge API your JavaScript calls. Those are the
Core concepts in this section. What differs is where the build runs, and
that is the choice between the two tracks below.
Two ways to ship
Do It Yourself
The open-source ruby_everywhere gem and its every
CLI build on your machine. You install the toolchain (Rust, rbe-tebako,
Xcode, Android Studio), run every build, and hold your own signing
certificates. Full control, nothing hosted.
Choose this if you are happy maintaining a native toolchain and a Mac, or you want to build offline.
→ Start the Do It Yourself track
RubyEverywhere Platform
The hosted Platform builds on managed macOS and Linux
runners: compile, sign, notarize, and hand back the artifact, all from the same
everywhere.yml. No local toolchain, no Mac. You still bring your own paid
Apple Developer account; the Platform holds your credentials and signs with them
at the moment a build needs them.
Choose this if you would rather not manage a build toolchain or a Mac, or you build from Linux, Windows, or CI.
How they relate
The tracks are not a permanent choice. They build the same app from the same config. Prototype locally with the gem and hand builds to the Platform later, or the other way round.
| Do It Yourself | Platform | |
|---|---|---|
| Where builds run | Your machine | Hosted macOS and Linux runners |
| Local toolchain | Required | None |
| Mac required | Yes | No |
| Apple Developer account | Yours | Yours, held in custody |
| Best for | Full control, offline | Builds with no setup, CI |
New to all of this? Read Local vs Remote mode next. It is the biggest choice you will make. Then pick a track.