Feature branches and source control?

Hi @AJAW and @liam_putra ,

As Joyce mentioned, this is something we are working on. Here’s a preview of what’s coming:

  1. Project Versioning and Rollback

    • You will be able to commit your work, with auto-commits occurring at regular intervals. This ensures that your progress is regularly saved as a new project version.
    • You will have the ability to roll back the editor to any previous version, preventing any potential loss of work.
    • Additionally, you’ll have the option to launch any version in a read-only mode, useful when collaborating with others who have also made changes.
    • It will be possible to copy and paste content from any version in the history.
    • However, please note that creating branches and merging them won’t be available initially. We’ll revisit this later. I’ll explain why below.
  2. Revamping Design System with Version Control

    • Design systems will now be managed at the project level rather than the workspace level.
    • To update a design system, you’ll need to edit the respective project, similar to how you work with a Figma file.
    • Once updated, you can share and publish these design systems within your workspace.
    • For example, you can create a project named “My Kit,” where you define colors and a class called button. You can then share and publish this design system.
    • In another project, say “Project B,” you can include “My Kit” and use the button class.
    • Changes made by a collaborator to the button class in “My Kit” won’t affect its value and usage in “Project B” until the collaborator publishes a new version.
    • You will have a notifications in “Project B” and decide whether to adopt the latest version, including the ability to test and use a previous version if there are any breaking changes.
    • As a side note, we might rename design systems to Libraries.
  3. Components with Version Control

    • You’ll have the capability to create components within the editor, allowing for the reuse of logic and easy maintenance of instances.
    • Components can include local variables, local workflows, props, drag-and-drop zones, and the embedding of other components.
    • Similar to design systems, you’ll need to publish every change made to components.
    • Components will also be integrated into design systems, giving you control over which version is active in various design system versions.

We believe that these version control features are the initial steps toward branching. They are essential for effectively scoping collaborators’ work and ensuring maintainability and scalability. These measures will minimize conflicts when merging potential branches, which is a significant challenge when dealing with branching, especially in a no-code environment where you can’t simply update a single line of code. You have to decide who wins.

Our plan is to release project version control and design system revamping in October, followed by components in November. Branching will be introduced later in 2024 after we have refined our version control capabilities sufficiently.

Hope this helps! Feel free to comment.

6 Likes