Implementation of the "Fork" Function in the Figma Community to Facilitate Contributions

:wave: Hello everyone,

I have been reflecting on how we can improve and grow our community, especially in terms of collaboration and contribution. One idea that came to mind is the ability to fork community files, similar to how GitHub works.

:saluting_face: Why it is important?
By having the ability to “fork” files, we can obtain a copy of the original file and create a branch to propose changes. This would allow us to:

  • :white_check_mark: Contribute to the libraries we use every day.
  • :white_check_mark: Propose improvements and optimizations.
  • :white_check_mark: Help with constructive feedback.
  • :white_check_mark: Collaborate on documentation.

:zap: Benefits
This method would not only give us the opportunity to improve existing files, but would also foster a culture of collaboration, similar to what we see in GitHub’s open source projects. It would allow members to actively contribute, improve and adapt the files according to changing design needs and current trends.

:raised_hands: Conclusion
Imagine being able to contribute to projects on Figma the same way we contribute to projects on GitHub. This could revolutionize the way we collaborate and share in the community. I’d love to know what you all think about it. Do you see value in this idea? :sparkles: :sparkles: :sparkles:

Thank you for taking the time to read and consider this proposal. I await your comments and opinions! :raised_hands:

Hi Ema.fig , great suggestion! Thank you for taking the time to share your feedback. We’ll pass along to our team for consideration.

I was about to post a similar idea, but spotted this one… so…

I’d very much like this as a feature. I work in an enterprise environment, but I am an interaction designer for an individual product, rather than a part of the core UX team. The product I work on is very much an outlier, with unique needs not catered for by the core UX team.

At present, I maintain a separate component library for the product I work on - much of which is built from components from the core component library… but more is completely new, albeit created using the same conventions and design tokens.

I do not have permissions to edit the core component library - only to consume it.

There is no real mechanism for me to feed back in to the core library, and once I detach an instance to add to its capabilities, it’s irrevocably separated from that library.

Being able to fork a library into my own team/project, extend it with a) components and b) new variants of pre-existing components would be extremely useful. Even moreso would be the ability to merge from upstream (to stay up to date) and raise pull requests for my work to be adopted by the upstream library when appropriate.

I have considered using the branching feature to do this, but the core team’s branching strategy doesn’t allow for persistent branches - they mandate that branches be small, focussed and transient.

Forking would allow me to proceed with my work, with a clear and simple way to update my work from the upstream projects, and a path for me to make clear suggestions for upstream to incorporate my work should it become necessary.

For a bit of context: ~2.5k people in our org using Figma in some capacity (including designers, devs, stakeholders, reviewers), spread across ~100 different teams/projects. I’m focussed on one of those projects.

I needed exactly this solution for my project
The project is such that a project should be published so that our users can copy it and at the same time it is connected to the main project and the changes in the method are applied so that it is updated for the users.
And the best way was the fork feature