Marketing Team: Can we present Nix/NixOS better?

Does the “CUE-like language” refers to cuelang? Where is it better than nix? This may be off topic, do you have a discussion link that I could read? Thanks!

I’m assuming he is talking about Nix language changes · GitHub.

1 Like

Not yet!

Yes. I have various overlays, package overrides, and sometimes kernel patches.

I was mostly nix-ified before using NixOS. The only downside of NixOS beyond nix was the installation. It’s an uncomfortable half a day if you’ve already identified the handful of posts (e.g.) that walk through it.

I’m not sure what you meant by “were the noticeable drawbacks for you despite the net benefit,” but, iiuc, the thing for me is that nix packaging is the main pain point of using nix. NixOS on top of that means you get what is, to me, a nicer way to deal with kernel customization and driver wrangling than you get elsewhere.

Better desktop installation seems like a small thing to me in the grand scheme of things, and there is apparently someone (or some people) working on improving it, so I’m slightly disappointed to see their efforts discouraged given that this was the one annoyance in going from nix to NixOS.

Thanks for your reply!

but, iiuc, the thing for me is that nix packaging is the main pain point of using nix.

Depends on the workflow, of course. Some people need software with an annoying number of FHS assumptions, for example.

Yes. I have various overlays, package overrides, and sometimes kernel patches.

NixOS on top of that means you get what is, to me, a nicer way to deal with kernel customization and driver wrangling than you get elsewhere.

Note that letting you set all of this up via a GUI installer is an even harder problem than an installer for minimal-viable-NixOS-configuration. Having a GUI tool that discourages doing the things that provide the most value (but also require the most understanding) has some drawbacks.

Maybe what would be good is more like porting GitHub - LnL7/nix-darwin: nix modules for darwin back to Linux, in the sense of managing small pieces of a non-NixOS Linux setup with Nix until conversion to NixOS requires just mounting the partitions and auto-generating the hardware config. Thus there would be less of a leap of faith between just using Nix and installing NixOS.

2 Likes

The main reason I use nix (as a ML/robotics person) is the ability to use nix-shell to ensure that the libraries I need for opencv/cuda compute are readily available on the cluster and on my workstation. I think this a huge target demographic (see GitHub - spack/spack: A flexible package manager that supports multiple versions, configurations, platforms, and compilers. for a nix-inspired implementation). On our compute cluster, nix also solves a problem with userspace library duplication which just eats memory when you’re dealing with several hundred users who all want to store their home directories on limited SSD space, and also want to install their own cuda/python/r/conda environments.

I also think that desktop-nix is an important component of drawing people into the ecosystem. I’ve sold several friends on home-manager for keeping consistent configuration across mac/linux/cloud/cluster, and also several former arch people on the bleeding edge, but stable and if not atomic rollbacks concept.

4 Likes

IMO a web/app interface for managing common parts of Nix systems would go a long way to easing day to day pain points. It could be a strategy that hits a lot of people’s use cases, including ease of installation, offering something relevant and useful for almost all nix users.

I wrote a long post describing the idea here: User-friendly NixOS distro? - #41 by imagio but the gist of it is to use an (web)app to take care of everyday pain points like:

  1. Discoverability and installation of software (add/remove/search packages from config graphically)
  2. Config backup and recovery (easy backup/restore to nixos.org, github, etc)
  3. Discoverability of configuration options (see what options are defined for packages/modules you’re using and set/unset them)
  4. Discoverability and setup of most common use cases (list and include modules for things like “kde desktop”, “steam gaming”, “lamp server”, “android development”, etc)
  5. Developer experience of working on nix (embed a monaco editor with nix syntax extension, quick access to key files, links to docs, maybe other tools)
  6. Management of generations, garbage collect, delete old (UI list of generations, diff of config between them, buttons to switch/delete)
  7. Configuration during installation (use the above tools during installation to ease the experience, make headless, remote, etc config awesome and easy)

As I’m sure you can guess based on the above, IMO the thing that makes NixOS hardest to sell is the knowledge curve (or maybe cliff). Everybody loves the concept of reproducible configs and atomic upgrades but actually getting the benefit of those things requires too much knowledge and work up front to be practical and attractive for most users. As others have pointed out even the process of acquiring that mountain of knowledge is currently a barrier due to documentation issues. Nix has a very high up front cost in time/knowledge to be able to use it. Easing the transition into that knowledge and presenting it at appropriate times via more discoverable/usable management tools is IMO the key – market nix as “start easily, gain uniquely powerful tools as you learn”

1 Like

That is such a great news ! Now that I’ve started using Nix and NixOS, I can hardly imagine going back to Manjaro, Ubuntu or others, but often when I talk about NixOS to other people they think I’m some sort of black wizard. I don’t know many people who would choose to install NixOS on their laptop.

My two cents about NixOS:

  • A graphical interface for installation is required

This is only if you target a very wide range of users. The truth is that (for now) NixOS can’t.

In most cases, a user will want to use a software that is not on Nixpkgs and in such recurrent case he/she will most likely have to make the package him/herself, which is only possible if said user has a developper background.

My opinion is that for now, NixOS is well suited for people who can (and WANTS TO) get the expertise on how to use it: not quite your average user.

  • NixOS has a steep learning curve/it is hard to learn how to use NixOS

I made a rant on r/nixos, let’s not repeat over and over. TL;DR: using the documentation to get sht done is fcking annoying. I see the table of contents as a realization of that from the NixOS team, which is great.

  • Nix error messages are bad

I would even say that we lack proper tooling for developping Nix expressions.

1 Like

@garbas I have some time to spend, so I sent a mail to webmaster@nixos.org

Anyway, I thought I’d post the answers to the latter questions here, too.

What is your idea what marketing team will work on, this year? Next year? Next 5 years?

We should start thinking about a rough marketing strategy mostly to be clear on what our goals are. If this is not clearly communicated, I’d be wary of subjective nit-picking in the community around what should and should not be done.

Sure, we want to make Nix more mainstream, but what exactly does that look like, if we are successful? More NixOS users? More Nix code on GitHub? More success stories about Nix adoption in organizations?

Identify a target audience that fits with the marketing strategy, e.g.

  • DevOps engineers or site reliability engineers
  • System administrators
  • Software developers (maybe segregated by tech stack)

As we have a lot of experience in the field ourselves, we can make some assumptions around what the relevant pains and gains of our target audience are to begin with.

However, ideally this should be followed up with user research. For example, we can review research papers as far as available, create online polls or conduct interviews with people from the target audience to validate or falsify these assumptions (outside NixOS community).

In any case, when we identify the issues that Nix can solve, we know what to advertise. This can mean explaining in simple terms that Nix can solve a problem and demonstrate how Nix does this. This should be done on the website, of course, but also by strategically placing conference talks outside the Nix community. There are certainly a lot more avenues for public outreach to explore.

In addition we will likely learn about issues that Nix cannot solve well enough yet. If additional features, documentation, tooling, packages, etc. would help Nix solve these issues, we can then communicate this to the Nix community to consider prioritising their development.

While addressing issues, changing our advertising, we can continuously conduct user research to monitor how Nix is perceived by our target audience.

This would be an on-going process, but I think it is realistic to get quite far already during this year 2020.

Next year we could start to widen the target audience and address a different set of needs. Just to give an example, we may focus on making Nix a great choice for local development environments and building containers now, and continue to widen the scope to managing complex infrastructure entirely with Nix-based tooling.

With the website hopefully in much better shape we can focus our efforts next year more on driving a part of the development efforts on Nix, NixOS and nixpkgs into a direction that is aligned with the marketing strategy.

Five years is far away. But I hope that Nix will be mainstream by then. The marketing team continuously monitors the needs of Nix users, derives suggestions for features and tools for the development from insights gained and actively reaches out to more target audiences to explain them how Nix will solve many of their infrastructure issues.

What could be few easy fixes to the website that would solve problems that you heard others complain about Nix/NixOS?

Without actual research, this will naturally be a little subjective. Generally, I believe https://nixos.org should cater much more to newcomers. Here are a few things that I believe are easy to fix.

Quickstart

Right now, you have to dig a little to find out how to get started with Nix.

There should be a very smooth path for people to get into their first simple nix-shell as soon as possible. This can be done with a few shell commands. Then they could already be writing their first shell.nix to keep that shell around. This is all very easy to do on most Linux distros, but the website does not highlight this. It should be the obvious thing to try first, when you are a new visitor to the website.

My hypothesis here is that, if we can show a potential new user in a few minutes how Nix can help them manage environments, this goes a long way in creating interest and make them stick around for more.

Clean up frontpage

There is too much irrelevant info on the frontpage

  • release history beyond the current release of Nix/NixOS
  • blog posts are interesting much later, but should not be your first impression. I’d bet experienced users get this from discourse or reddit instead of the homepage.

Confusing navigation

The Home/Nix/NixOS/Nixpkgs split is confusing: focus the navigation around what the user wants to see or do. I would merge all the separate navigation systems into a single menu focussed around the use case. For example, nixpkgs and the package search address the same concern and should be grouped together.
This requires some iteration with user feedback, but the situation can certainly be improved.

Package search

The package search could show more relevant results, i.e. when I type in python or vim or emacs or redis, the respective packages should really show up first. This goes for nix search, too, by the way.

3 Likes

I agree with this market segmentation. I would think that software developers working with somewhat functional languages would be more receptive because they try to limit state wherever possible. I would think the Haskell, Clojure, Elm, OCamel type communities would be most interested (but I may be wrong). Funny enough, I also think the “ricing” communities would show some interest due to the ability to configure the entire system. Get a spot on Distrotube of Lukesmith’s youtube channel, lol!

I came to nix for a couple main selling points:

  1. Functional design with the ability to rollback
  2. Ability to have a pretty pure development environment

I am enjoying number 1 while still trying to figure our number 2. Do I use nix-shell or lorri? What about editor support, etc, etc. Needless to say I still don’t really know how to use nix-shell and I desperately want to learn. Documentation is painful. I wrote a beginners guide to installing Nixos with ZFS, but still haven’t posted it to a blog yet : GitHub - bhougland18/nixos_config: Nixos configuration

I can’t wait for the day there is a NixOS book that one can buy on Amazon.

I do like the package search (way better than Guix) but I think it would be better if users could contribute reviews, or report broken packages. Many people go to the Arch Wiki that don’t use Arch because it is valueable, just like many people look at reviews on Amazon before buying something at their local store. Nix has great packages, and some more obscure, but interesting, packages that you many not find on other distros. I think enhancing the search with crowd sourced knowledge might not be a bad idea.

Better documentation about what to expect on the package submission process

I don’t know what to do next in this package submission: windowchef: init at 0.5.0 by bhougland18 · Pull Request #84305 · NixOS/nixpkgs · GitHub
Am I good to go, or do I still need to do something?

2 Likes

Nix has a wonderful story for bringing in various random libraries or to try out applications and in a no-risk way. The biggest hurdle for this sort of ad-hoc and quick experimentation is ecosystems composed of packages and plugins. Using pythonPackages, haskellPackages, gstreamer plugins, qt “xcb” failure to load, etc can get aggravating even though I’ve packaged and worked with them for a few years.

The wiki and associated sections of the manual are helpful, but I’ve been to them many times and still get confused, I can image it’s far worse for someone who just wants to get something to “pip install” and make progress on a project. I’ve been putting together a pkgs-repo for AI/ml/data-science with all the the associated CUDA, python, tools, etc working. Having “blessed” ways to participate in these ecosystems helps because Nix is too powerful, there are so many ways to implement/package things that the “right” way can be elusive.

4 Likes

Absolutely. More related to the development method, but here a more kernel-like approach or splitting into flakes would help a lot I think. If the repo/topic is sufficiently popular and well-maintained I imagine it could be put on under the NixOS umbrella.

I think this is also the way forward for ML in Nixpkgs. It’s a topic a lot of Nixpkgs users work with, and it sees also a lot of activity in the repo, however, there is not as much cooperation as it needs. Example: Tensorflow. I don’t know why. Maybe it’s because these are difficult packages, or because Nixpkgs moves so fast they can’t keep up, maybe because they often can’t merge themselves and would prefer to be in control.

3 Likes

I believe DistroTube did a video on the NixOS install process two years ago, which wasn’t exactly positive.

Having said that, while it has suggested in the thread, I think it is important to highlight how critical it is to get a good series of video tutorials out onto YouTube. For better and worse, when people want to find out how to do things, they go look up videos on YouTube. And think they should cover more than just desktop “ricing” usage, but also the use cases that @aepsil0n mentioned.

1 Like

We had that chance and failed miserably!

https://www.reddit.com/r/NixOS/comments/88z7mp/first_impression_of_the_nixos_installation/

It’s hard not to give that [installation process] a complete fail. That is one of the least userfriendly linux installs i have seen in a long time. The Arch install […] is so much easier.

Source: https://youtu.be/QujRHErFG4w?t=24m

99.9% of the people that run linux are not going to need a distro like NixOS. It will not serve any purpose for them.

from the comments:

We’re trying to get Linux more popular with the general public. This is not cutting it.

I was thinking about installing this one. Thanks for the video. And, no thanks.

Outdated incomplete rubbish distro. Thank you for showing it.

Your reviews are excellent.
Thanks for your time foolin’ with this . I’m amazed nix was released . Apparently is was junk 8 months ago and to all who are are looking today it still is. God, what a waste of time.

This thing lives up to Linux stereotypes in a way very few Linux distros actually do.

Friends don’t let friends use Nix

You really missed the entire point, and reason for this operating system existing. It’s not for distro-tourists or people wanting an OS for their parents or something. It’s an advanced tool for immutable os configuration based on the lessons learned from functional programming.

I hope you get a little mad and see how important clear communication is about what NixOS is and what not. The last comment is quiet good.

There you also see how casual users and distro hoppers react to NixOS while expecting a standard desktop distro. We don’t say it is, but also not that it’s not. Without clear communication on the website and adding a graphical installer, a lot more frustrated people like that will exist promoting not to try NixOS.

The reddit comments are also very helpful.

6 Likes

This link is somewhat in continuation to my previous post and not a reply to anybody. I also want to be clear- I’m not trying to offend anybody and i wouod feel bad if someone insulted things I’m attached to but it’s probably important in the context of marketing.

"
We shipped Planetary Annihilation on Win, Mac, and Linux. Linux uses we’re a big vocal part of the Kickstarter and forums. In the end they accounted for <0.1% of sales but >20% of auto reported crashes and support tickets (most gfx driver related). Would totally skip Linux. https://twitter.com/flibitijibibo/status/1079575301485723648
"

https://mobile.twitter.com/bgolus/status/1080213166116597760?lang=en

I post this so that it might help you guys make a decision on what kind of crowd to attract. (I would think “ricing” community would overlap with the gaming community or people who get their distro advice from YouTube)

1 Like

DistroTube didn’t respect NixOS. He did the installation in a sloppy way. NixOS is not a distro that could be treated like regular ones, and apparently he did a bad job.
(Therefore, I really dislike his video personally because he is too stubborn, not willing to unlearn and accept.)

2 Likes

Why would he? The presentation was not clear enough to get him interested.

I think it should still work. We have to make sure that these issues don’t happen by making the instructions easy and clear. Many small details add up like the warning he perceive as error (it had the color red normally used for errors instead yellow!) and the installer was unresponsive.

He might not be the target audience, but even they can end up in some of these issues which leads to pain and frustration. We have this one chance to show that NixOS works and has advantages over other distros. He mentions at the end that “99.9% of linux users” are not the target audience and says that it is an interesting project, but i’m not sure he actually understand what NixOS is about. And i think that is our fault because of poor presentation on the website! We have to use wording the visitors understand and show practical advantages. It’s already a lot better now and will improve the next weeks.

agreed. and it’s sad many people have this opinion of NixOS now. but the video is very valuable for us because we get raw feedback how someone like him reacts to the experience presented.

i feel you, but we also have to accept that many people are not willing to invest the time needed or just don’t have the time, even developers that have a stressful life. but it’s in our hand to improve it :slight_smile:

5 Likes

Yes, I noticed some infra quirk in this video but it’s outdated. The problem is people are still getting vernacular sentiments that “NixOS is still broken” based on what this video has shown, which is what we need to change.

1 Like

Yes. Maybe we can present NixOS as constantly improving. It’s better with every release.

1 Like

NixOS is a modern and flexible GNU/Linux-based distribution that is both archaic to install and maddening to set up.

Source: https://www.linuxinsider.com/story/85289.html

I have no choice right now and have to spend most of my working time on NixOS automation. To this moment of time I have more than 10 years experience of using different Linux distributions and more than 6 months of NixOS experience. And most of my experience with NixOS is bad experience.

Source: Why you should never ever use NixOS

Also not very positive.

So I’ve read through the thread more carefully, and a couple of thoughts:

First, I think that Nix/NixOS could be a broader tent than people are giving it credit. Yes, it’s not a “beginner’s”/“user-friendly” distro and never will be (an over-saturated market, in any case), I think it could be accessible to anybody with relevant technical skills (e.g. some prior knowledge of Linux shells) and a willing to learn something new. In other words, I think anybody who can learn and use Arch, Gentoo or similar distros should also be able to learn and use NixOS. As people have said before, one the biggest hurdles is using Nix/NixOS is its documentation. It needs to be more easily navigable and better organized. But this is somewhat out of the marketing team’s hands. @SRGOM does raise a good point that these “power users” can something be a bit … prickly to deal with (I guess I could), I think have a larger userbase in general would be a bigger benefit than a cost.

Second, regarding installation, I’ve had a pretty good experience with installing NixOS on two machines now, by following the instructions in the manual and asking some questions on IRC, so I don’t think having a graphical installer should be a priority. I think having a simpler TUI installer is something that should be investigated, however, if it help those experienced users install the OS quicker and with less pain.

1 Like