Docs

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.

→ Start with the Platform

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.

Rails · Hanami · Sinatra — built with Ruby