Siphon is shutting down on 27th July 2016. To our customers, users and supporters: unfortunately this is the end of the road for Siphon. Our long-term goal was to create the most developer friendly end-to-end publishing platform for mobile apps.

Due to some inherent limitations in the early design decisions that we made (in particular the inability to compile your own native modules with Siphon) we have come to the regrettable conclusion that this vision is not possible at this time. We hoped that these native bridged modules would mature and become less important over time, but this has turned out to not be the case.

All apps created using Siphon are fully compatible with the standard React Native framework and transferring your app should only take a few minutes. Please email us if you need any help migrating your app.

Thanks to everyone who supported us over the past few months.
/docs
Fundamentals Quickstart FAQ Native modules Base versions Running on your device How publishing works Assets Ignoring files Over-the-air updates Convert an existing React Native app Sharing Beta testing Collaborating in a team Tutorials Build a real-time chat app Build a YouTube video browser Using Facebook's SDK with Siphon Turn an existing React Native app into a Siphon app Siphon Sandbox iOS (App Store) Android (Google Play)
Quickstart

Siphon is primarily a command-line tool. This quickstart tutorial will walk you through the installation process and then describe all of the ways that you can interact with the service.

Install the command-line client

To get started with Siphon you will need to download our lightweight command-line tool. Paste the following command into a terminal window:

$ curl https://getsiphon.com/install.sh | sh

The installer script will take a few seconds to complete. Once that's done, check that the tool is working:

$ siphon --help
Download and run the Siphon Sandbox app

One way to run apps is by installing the Siphon Sandbox app onto your device. Open up your phone's browser and type in the following address if it's an iPhone:

getsiphon.com/i

Or, if it's an Android device:

getsiphon.com/a

Once that's done, login with your Siphon account. No account yet?

Create a free account

You can also use the siphon play command to run your apps in the simulator. More on that below.

You can run both iOS and Android apps through our sandbox app. Android simulator support is coming soon.
Create your first app

Navigate to a suitable directory (anywhere is fine) and type the following command to create a new app:

$ siphon create my-app

You can name the app anything you like. The tool creates a new directory with same name.

The new directory contains a simple React Native template app. Once the command finishes running, the new app is going to appear in the Siphon Sandbox.

Next, tap on the icon to start the app; it's going to load over-the-air.

Push some changes to your app

Now let's try making some changes. Navigate into the newly created directory and open up index.js in your favourite editor.

Change some of the template text within the <Text> tag and save the file.

Siphon apps are powered by React Native under the hood. Learn more
about it here: React Native: A Beginner's Tutorial

Next, push your changes with the command-line tool:

$ siphon push

The app should now automatically reload on the phone and display your changes. Instead of typing in this command for every change, you can also use the tool to watch your app for changes:

$ siphon push --watch

Every time you save a change to one of your app's files, the tool will push those changes automatically. This makes the process of developing your app much more pleasant.

To stream logs and errors from your app as it runs in the sandbox, you can use the siphon logs command.

The app directory works like a typical Node.js project directory; you can install
suitable third-party modules using npm install and the command-line tool will push the node_modules directory and bundle it with your app.
Running your app in the simulator

If you're using a Mac, there's a way to run your app in the iOS simulator. Navigate to your app directory and type in:

$ siphon develop

The tool will prompt you to install Xcode and any other necessary components that you haven't already installed on your local machine.

It will then build and run your project as a standalone app in the simulator while running the React Native packager in the background (so you get the benefits of Hot Reloading).

You can specify other simulator types like this:

$ siphon develop --simulator ipad2

Soon you will also be able to run your app in the Android emulator, but for now you should use the sandbox.

To run an app on your developer device you should use siphon play.
Sharing your app with beta testers

Before publishing an app it can be useful to send it to beta testers so that they can give you feedback. Simply specify an email address and we will send them an invitation to beta test your app:

$ siphon share someone@domain.com

No approval is required and the recipient will be prompted to create a Siphon account if they do not already have one. The user will see a special read-only copy of your app and you can instantly send them changes as often as you like.

Learn more about beta testing

Publishing your app

When you're finished working on an app, you can publish it by typing in one command:

$ siphon publish --platform ios

You will be prompted to enter some basic information about your app, like a description and some keywords.

Behind-the-scenes we will build, sign, package and submit an app binary on your behalf.

Read more about how publishing works

Publishing to the App Store and Google Play requires a paid subscription.
Next up

Build a real-time chat app FAQs

Watch the video
More docs
Fundamentals Quickstart FAQ Native modules Base versions Running on your device How publishing works Assets Ignoring files Over-the-air updates Convert an existing React Native app Sharing Beta testing Collaborating in a team Tutorials Build a real-time chat app Build a YouTube video browser Using Facebook's SDK with Siphon Turn an existing React Native app into a Siphon app Siphon Sandbox iOS (App Store) Android (Google Play)