Background
A quote from our survey post - “Since the Nix community has been growing faster and larger every month, it’s gotten harder to understand who makes up the community and what everyone cares about.” So we’re conducting this survey to improve our understanding of those questions. We hope to use your responses to develop Nix, NixOS, and Nixpkgs to match your needs and come up with new ideas for growing and serving the community.
Conducting this survey on a recurring basis will enable us to also surface trends/patterns across the years.
TL;DR
Nix has been growing significantly, over 30% of Nix users have joined us in the past year. Biggest issues raised were around documentation and difficulties contributing to Nix. Both items will have their priorities increased and we will continue working on addressing them.
Method
We conducted an online survey of 44 questions, 17 of which were open-ended. The survey was split into four subsections - Background Information, Nix User Questions, NixOS User Questions and Misc. Questions. We received 2156 responses. As most questions were not “required” we received a varying amount of responses to each question, the average response per question stood at ~1330 responses.
The survey was open for a one month period, the entirety of March. We announced the survey by way of postings to Nix Discourse, Matrix, Linkedin and Twitter.
Once the survey window was closed we split the analysis into two: multiple choice/answer questions and open-ended questions. Multiple choice/answer was analyzed numerically by compiling the responses by percentage. Open-ended questions were analyzed by reviewing each and every one of the 7k unique responses. The survey analysis was conducted throughout the month of April with over 80 hours logged.
Full Demographic View - Nix by the Numbers (Top 3’s)
Main Regions
- Europe and Central Asia - 58%
- North America - 26%
- East Asia and Pacific - 8%
Age
- 25 to 34 - 44%
- 15 to 24 - 22%
- 35 to 44 - 24%
Occupation (multiple-answer question)
- Linux Enthusiast - 53%
- Backend Developer - 40%
- Fullstack Developer - 31%
Main OS Used (multiple-answer question)
- GNU/Linux - 90%
- Windows - 30%
- MacOS - 27%
Unsurprisingly, most of the respondents use Nix / NixOS daily (78%) while a smaller percentage (10%) have been using it on a weekly basis. This is in line with the expectation of who is more interested in providing feedback but should be taken into account as you review the data/takeaways. Although about 3% of respondents signaled that they have stopped using Nix / NixOS at some point, encouragingly we are starting to trend on newcomers! While the majority have used Nix or NixOS in the 1 to 3 year range (37%), 30% of respondents have joined the Nix community in the last year. Our expectation is that as we continue to improve Nix and NixOS we should be seeing a positive trend that leans towards more Nix users <1 year.
Nix continues to be used mostly for personal projects (86%) with 61% also simultaneously using it in a work related context. It will be interesting to see how this usage trends over time in subsequent surveys. As this is the first community survey we can’t yet make any conclusions around trends for these numbers - will they trend up, down or remain flat?
Key Themes
We noticed 5 key themes appearing throughout the survey:
Lowering barriers to Nix - Making Nix more accessible
A common thread mentioned in many different forms was the complexity of Nix and NixOS and therefore the need to significantly lower the barrier to entry. Suggestions included improved documentation, examples, and tutorials for new users as well as GUIs or templates for easier installation, configuration, package creation and system management.
Documentation, Documentation, Documentation
Documentation (once again) came up universally across almost all respondents. Key asks in this area revolved around three aspects - onboarding, unblocking and centralization.
- Onboarding - A majority of respondents highlighted trouble in the onboarding phase. The lack of new user documentation meant users have a tough time understanding how to onboard, following the first few steps, understanding best practices and finding general FAQs.
- Unblocking - Respondents heavily emphasized the need for better documentation in the realm of tutorials/guides/examples that can help serve in unblocking themselves.
- Centralization - Many were frustrated with the time it took to locate relevant documentation. Searching for answers took too long and invariably led them to various websites, github repos, and videos - often requiring multiple resources to address the same issue.
Better Debugging
Debugging and error messaging was another major theme for users. Complaints revolved around the effort required to track down answers through debugging, unclear error messages and difficulty in identifying errors in code (time consuming).
Contributing to Nix
Many respondents mentioned the difficulty in knowing how to contribute back to the community. Many said they felt their abilities are not good enough while others said the large backlog of PRs discouraged them from logging additional PRs because they felt they wouldn’t be reviewed and actioned in a timely manner. Some simply did not know how to offer their help.
Reproducibility is the Way
And finally, nearly all respondents came to Nix or NixOS for the advantages of having a declarative, reproducible setup and the vast majority started using Nix through NixOS. Those that stuck with it say they don’t know how they ever did without it! Some, as stated previously, would rather disconnect from technology and lead a life in the woods than continue to work without Nix.
Next Steps
The Nix survey will be recurring and we plan to continue improving it. As previously announced, the goal is for the survey to help all of us understand the needs and wants in our community. This clarity will serve as an asset to all efforts across the Nix community, helping the different teams, contributors and users better prioritize their efforts to address the needs of the community. In particular, it provides invaluable input for the creation of a Nix roadmap.
Some of the pain points identified above are actively being worked on. For example:
- There have been many contributions recently to improve Nix error messages, with more still planned.
- A Nix debugger is expected to land soon.
- There is a Nix UX team that has weekly meetings and hacking sessions to improve the Nix user experience.
Please share your thoughts and feedback regarding the survey so we can continue making it better for next time.
Graphical Representation of Questions
#Thanks! to @fricklerhandwerk for the updated graphics!
Thank you to everyone that took the time to respond!