Skip to content

[submission] Layers #19

@bumbleblue

Description

@bumbleblue

The Design Problem

When teams collaborate, there are two general frameworks: (1) an agreed-upon version that is constantly shared, or (2) many versions that need to be intentionally shared and merged together at different points in time. Decentralized technologies often introduce framework (2) as a collaboration model but doesn't support version control out of the box. Git is a protocol that helps people collaborate; it is very much intended for developers and is biased towards text (lines of code). Beyond Git, version control can be a mess.

The Design Solution

A Layer is a number of changes grouped together and -- ideally -- named. This forces collaborators to intentionally log and share changes they make to a common document. The metaphor is a "stack of layers" where the top layer is the latest version of the document.

Examples

  • Almanac uses Layers for their text editor
Almanac_Layer

Why Choose Layers?

Layers can be a simplified presentation of a pull request.

Best Practice: How to Implement Layers

  • Show authorship colors (cf. Etherpad)

Potential Problems with Layers

  • Do not use layers in visual contexts; layers are an existing concept in visual editors such as Photoshop, Figma etc.
  • Offer a toggle for tracking changes.
  • We are unsure about the word 'layer', and are hoping to test it. Almanac used it in 2022 as the Upwelling essay was being developed, but it is being sunset early 2025.

The Take Away

Git's collaboration model can be too complex for non-developers, it is worth experimenting with alternative terms that are more intuitive.

References & Where to Learn More

https://www.inkandswitch.com/upwelling/

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Under development

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions