Skip to content
LogoLogo

About workspaces and versions

Why can you not edit what your visitors see? Because Picked keeps two things separate on purpose: the work in progress, and the thing that it serves.

The two states

A workspace holds your changes. Edit a flow, a feature flag, a step, a field, an action, or a condition, and the change stays in the workspace. No visitor sees it.

A version is what your visitors get. When you publish, Picked takes the current workspace and makes an immutable snapshot of it. A project serves exactly one version at a time, the live one.

Everything else follows from that split.

Why the snapshot is immutable

A published version cannot change. That is what makes a roll-back safe. When you restore an earlier version, Picked moves the live pointer of the project and changes no data. The version that you restore is the exact version that was live before, and not a copy that Picked builds again.

It is also what lets your draft continue. When you publish, your workspace stays editable, and a roll-back discards no draft. The two move at their own speed.

The three workspace states

  • Live — the workspace whose snapshot the SDK serves. Each project has exactly one.
  • Draft — a workspace that no visitor sees. Edit it, see a preview of it, publish it.
  • Archived — a draft that you put to one side. It is still editable, but it is out of the default list.

Picked keeps these two operations separate on purpose. Archive a draft when you are not certain about it. You cannot reverse a delete, but you can always unarchive.

Why the publish modal shows a diff

It is the one step in the dashboard that you cannot take back. It is therefore the one place that shows you exactly what changes. The modal compares the current workspace against the last published snapshot. It puts the changes into groups, and marks each row added, removed, or modified.

The diff also carries a warning that a plain list of changes cannot give you. Some changes break other records. Remove a field while steps still point at it, and those steps now have an error. The preview shows that above the diff, before you publish and not after.

The first publish of a workspace has no earlier snapshot to compare against, so the modal shows the contents instead of a diff.

A preview does not reach production

A preview sends the workspace state to the SDK in the query parameters. Your unpublished workspace therefore applies to your browser and to nothing else. The visitors on your live site see no change.

One result of this matters. In a preview the SDK stores a feature flag decision in session storage and not in local storage. A preview allocation is therefore disposable, and it can differ from a production one. See About feature flag allocation.