Concepts

Projects

A Project is everything Soffi needs to run one of your apps: the repositories it's built from, how to start it, its environment variables, and the Data Twin that stands in for its backend when the real one can't be reached. It's a blueprint rather than a running thing. Each Workspace your team starts is built from it.

Set up once

Project

Repositories, how to start the app, environment variables and the Data Twin.

Published by an Admin

New workspace
Work in parallel

Workspace

Its own copy of your app, at its own address.

Preview

Workspace

Its own copy of your app, at its own address.

Preview

Workspace

Its own copy of your app, at its own address.

Preview

An Admin sets the Project up once. Then everyone starts their own Workspace from it, each with its own running app.

Set up once

The hard part of running an app somewhere new is the setup: services, environment variables, a backend to talk to, and a way past the sign-in screen. In Soffi that work happens once per app, not once per person. An Admin creates the Project, usually with Build my app during onboarding, and Soffi reads the repositories, works out how to start the app, builds a Data Twin if you asked for one, and checks that the app comes up.

A Project can include several repositories. You choose one as the primary repo, the one Soffi runs and previews, and add anything it depends on, like a design system, an API, or a config repository.

A Project is built from a base branch in each of its repositories, your default branch unless you say otherwise. To use a different one, mention it in the context you give Soffi during setup, or later open the Project, choose Edit, and tell Soffi which branch to build from. The base is set for the Project as a whole, because most apps span several repositories and their branches have to line up, so every new Workspace starts from it and there's no choosing a different branch for one Workspace.

Most Organizations have a single Project. Admins add more from the Projects page when they want Soffi to run another app.

Published before your team starts

A new Project isn't open to the whole team straight away. While it's being set up, the people setting it up work in the Project's own setup Workspace, where they can check the running app, adjust the configuration, and have Soffi fix what's missing. Editors and above can work in an unpublished Project; Reviewers can't.

When the app runs the way it should, an Admin publishes the Project. Publishing makes that setup the starting point for every new Workspace, and from then on anyone with the Editor role or above can start Workspaces from it. Until then, Soffi doesn't offer New workspace for that Project to anyone, Admins included, so nobody starts work on a setup that hasn't been signed off.

Publishing is about who can see and use the Project. It doesn't deploy anything to your production environment, and a Project can be running in Soffi without being published.

A Project for a feature branch

Teams often work together on a larger feature on its own long-lived branch before it merges into the default branch. In Soffi, that's a separate Project: an Admin creates a new Project from the same repositories and tells Soffi to build from the feature branch in each one. Once it's published, everyone working on the feature starts their Workspaces from it, their pull requests target that branch, and the Project built from your default branch carries on as before. See Create a project.

Changing the setup later

The setup isn't frozen. When someone improves it in a Workspace, for example by adding an environment variable or extending the Data Twin, an Admin chooses Save setup on the Project's Configure page and picks that Workspace to save from. Soffi rebuilds the Project's starting point from it, which usually takes a few minutes. New Workspaces start from the new setup once it's ready, and existing Workspaces bring it in in the background. If that rebuild fails, new Workspaces can't start until an Admin fixes the setup and saves it again, and the New workspace menu says so.

Your base branch moves too, and it reaches Workspaces through the Project. When work merges into it, Soffi merges it into the Project and saves it automatically, as long as the setup has no unsaved edits and the branch is protected. Otherwise the Project's Edit page shows that new work has merged and asks someone to save. See Staying up to date.

For the details of each part of the setup, see Project setup, and for publishing in particular, Publish a project.

Was this helpful?