As already discussed in related issues:
Currently the main page does a really good job at explaining to a nix DevOps engineer exactly why NixOS is good, but it provides little to no information to a person who’s not “in the loop” yet.
In order to start discussing what actionable changes to make in order to improve the situation, the first question to answer should be: “who are these changes targeted at?”. In other words, who is the target audience of these changes? I’m well aware that I’m in no position to be steering project’s goals and perspectives here but I’m also feeling like it’s just natural to assume who these users are not first:
- I don’t expect a new potential user to come straight from windows because there’s clearly some user-friendliness work ahead in the nix infrastructure to be done before the interaction with the OS is anywhere near as visual and as intuitive as it is in windows right now.
- I also don’t expect them to be coming from a “casual” distro such as ubuntu or elementary, because the problems that Nix/NixOS is solving are well hidden from the users of those distros so they might not even perceive them as problems.
Now I’m going to make some very relaxed assumptions about the new potential users:
- The new user needs to be able and willing to work with some amount of scripting, because the nix infrastructure just does not have yet a reasonable GUI front-end. It makes no sense to pretend otherwise.
- I think in order to get excited about declarative package management, one needs to first realize the problems of the typical imperative package management. That’s why I think it’s fruitful to target audience specifically from Linux distros that do have those problems: arch, gentoo, etc.
- Due to the current state of nix documentation, the user is expected to be able and willing to read and search a lot of information. Conveniently enough, this very closely correlates with the previous assumptions.
- The new user might also be coming from the MacOS world, but I know absolutely nothing about it so if anybody has suggestions how to lure them in, you’re most welcome.
Now, I’m not even trying to go into restructuring the website, rearranging pages, changing styles, etc etc – this is a very involved and controversial subject that is likely to involve ungodly amount of bikeshedding, also creating design is expensive and takes people that actually know what they’re doing, creating visual assets requires even more specialized people and I’m obviously not one of them so I’m not even gonna touch this.
Instead, I want to find the minimal amount of lowest effort text-only changes that can make the front page less intimidating for people that have a chance to get interested in NixOS, and as I pointed out, it’s currently a pretty narrow niche of people that are relatively easy to target: they are most likely people already familiar with some of those other technical linux distros, and most of them conveniently have those exact problems that NixOS is in fact solving.
Currently the system is advertised by properties it has (Declarative, Reliable, Reproducible) – but most users of those distros don’t even know why they would want it. So instead, to get them interested, these could be worded differently and emphasis could be put on what problems these properties solve first, and then how.
As an example, let’s look at the most informative part of the current front page:
I have already listed a bunch of examples in the github issue of how these can be actionably modified:
Note that the goal is not to change content or meaning (that is just far too ambitious), I’m just shifting accents from perspective of a DevOps engineer to a person who is just tired of breaking arch when they need it.
There are more fundamentally important advantages for a new user that I feel have to be present somewhere upfront, but they’re nowhere to be found:
- Ambitious and fresh take on a linux infrastructure that pioneers a new way of managing and maintaining the OS that is in many ways advantageous compared to thousands of other distros.
- Ability to back up your system configuration to 10 lines of a text file instead of 10GB image of your hard drive.
- Rolling back your system to any previous revision takes as little as seconds.
- Cloning your system is as easy as cloning your configuration.nix file
- Innovative way of resolving package dependencies that by design can not produce conflicts (insert a link here how it works).