Concepts
Previews and deployments
Every Workspace runs its own copy of your app. Soffi calls the running app a Deployment, and the view of it inside the Workspace the Preview. You use the Preview the way you'd use your app in a browser: click through it, open a modal, or resize it to see how a screen looks on a phone. See Preview.
A deployment per Workspace
When you create a Workspace, Soffi deploys your app for it from the Project's setup, and the Preview shows the deploy's progress until the app responds. From then on, the Workspace has an app of its own, built from its own branch, so edits you make in it show up in the Preview as soon as you make them, and nobody else's work changes what you see.
Each deployment runs in its own isolated environment. One Workspace's app can't reach another Workspace's app or data, even within the same Project. See Isolation for how that's enforced.
The Project has a deployment too: the setup Workspace where Soffi gets the app running before it's published.
A stable address
A Workspace's deployment lives at its own address, and that address stays the same when the app is redeployed. Data the app keeps while it runs, such as records you created while testing a flow, also survives a redeploy. A new Workspace gets a new address and starts from the Project's setup again.
Deployment states
The Workspaces page and the Workspace itself show where each deployment stands:
- Deploying: Soffi is building and starting your app.
- Deployed: the app is running and the Preview is live.
- Sleeping: nobody has used the Workspace for a while, so Soffi paused its app. Opening the Preview wakes it up again, which takes a moment, and it catches up on any updates that came in while it slept.
- Failed: some or all of the app didn't start. The Preview offers Redeploy, and if the redeploy fails too, Soffi starts looking into it for you.
- Stopped: the app isn't running, either because someone stopped it or because it exited. The Preview offers Deploy to start it again.
Most edits reach the Preview without a redeploy. Some changes, like a new environment variable, only take effect once the app restarts, and Soffi redeploys the app for those.
Where your production deploy fits
Soffi deployments exist so your team can work on the app. Soffi never deploys to your production environment. When a Workspace's pull request merges, your own pipeline ships it, exactly as it does for any other pull request.
If the app can't reach your real backend from Soffi, the Preview runs against a Data Twin instead, and your app's own sign-in is turned off in previews, so every screen renders without real accounts or production data.