Better Rail is an open source mobile client for Israel Railways, with an emphasis on great design, performance and accessibility.
Available on the App Store & Play Store
Better Rail is built with React Native. We also use Swift and Kotlin to leverage native platform functionalities.
The repository is a Bun workspaces monorepo:
| Path | What |
|---|---|
apps/mobile |
The React Native / Expo app (README) |
apps/server |
Notification & timetable server (README) |
apps/website |
better-rail.co.il static site (README) |
The following steps assume your environment is already set up for running Expo / React Native apps (Xcode for iOS, Android Studio for Android).
If this is your first time, check out the Expo local development setup guide beforehand.
- Bun: This project uses Bun as the package manager. See the Bun installation guide for instructions.
- CocoaPods (iOS only): Required by the prebuild step. See the installation guide.
- Fork the repo and clone it to your machine.
- Run
bun installfrom the repository root (this installs every workspace). cd apps/mobile, then runbun startto start the development server.- Android only: run
cp -v google-services{.development,}.json - Run the app with:
bun prebuild --platform ios && bun ios(to open the iPhone simulator)bun prebuild --platform android && bun android(for the Android emulator).
The first run generates the native projects and may take a while.
If you change anything that affects the native layer (config, plugins, native dependencies), run
bun prebuildto regenerate the native projects.
If you want to contribute and face issues during installation, please reach out to us at feedback@better-rail.co.il and we'll try to help!
Every app can also be driven from the repository root:
bun run mobile:start # Metro / Expo dev server
bun run mobile:e2e:ios # Maestro on an installed iOS E2E build
bun run mobile:e2e:android # Maestro on an installed Android E2E build
bun run server:dev # server in watch mode
bun run website:dev # static site on :8000
bun run lint # oxlint + oxfmt across the repo
bun run test # mobile + server testsEAS commands run from apps/mobile.
The source code is released under the AGPL-3.0 license.
The project assets - the user interface, app branding, images, illustations, icons and fonts are outside the scope of the license.
