Project: Document Variant URLs


When you link to a document, the URL is like with an optional version. If you want to link to another variant, you currently must specify the exact version. But this has some problems:
The variant switcher does not correctly show the variant you intend
The "latest" version that you can jump to is only the owner variant
Previously we were moving towards a special URL format for group variants:, but this was proving to be confusing for people. The user is intending to reference a document, but really, a group is being referenced here. And the version refers to the version of the group. So we want to move away from this format.
Next, in the variant switcher it is possible to select multiple variants. This is a particularly important workflow for merging variants. However, the current UI only supports merged variants for accounts.
<screenshot variant switcher, coming soon>


Introduce a new ?a= query parameter in Hypermedia doc URLs, with "a" meaning "according to...". This allows you to specify:
Group Variants, using the g/GROUP_ID/PATH_NAME format
The GROUP_ID specifies the group, and the PATH_NAME specifies which item in this group will be considered the latest version of the document that is being referenced. The path name is required because it is possible for one document to be published to the same group multiple times in the latest version, with different path names.
Account Variants, with a/ACCOUNT_ID
Multiple variants are separated with a period, to match the convention set in ?v= where multiple changes are concatenated
An example URL with multiple variants: where we are showing a merged variant of an account and a group, with a specific version also specified.
When you open a document from a site, it will take you to the group variant for that site, so the variant switcher will show the group, giving context where this was published.
If we have URLs that support combined group+account variants, we need a UI that allows you to do the same. This will support advanced merge scenarios where you want to merge changes into a group variant.
<mockup coming soon>


Frontend: 2 weeks. No backend support needed, right?

Rabbit Holes

UI design may be a bit tricky, to enable multiple variant types