-
-
Notifications
You must be signed in to change notification settings - Fork 343
Explain NixOS on the landing page #1726
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/2025-04-14-marketing-team-minutes/63044/1 |
Looks good, though I feel like we should make both sides more distinguishable |
Hmm, I have multiple things here that I still don't like:
|
<h1 class="font-heading text-5xl leading-none font-bold"> | ||
Declarative builds<br class="hidden md:inline-block" /> and deployments. | ||
Build reproducible development environments, simplify your |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is pretty much the first thing fresh eyes will see. I'd expect an extraordinarily strong justification for whatever text will be shown. What do we want to convey achieve here?
Why do we change from a description to imperative? What are reproducible debelopment environments? What does it mean to simplify deployments? Are we saying your deployments aren't simple enough? Can we even substantiate the claim using Nix for that make any of that simpler? It's also a lot of words and characters for a starter.
On the other hand, the existing text is much less ambiguous: declarative builds and deployments is (a major part of) what Nix is a about. Declarative programming languages are a well-established and well-understood concept from programming, we can link to a Wikipedia article that won't raise more questions than it answers. That phrase faithfully represents that Nix combines declarative programming with building and deploying software. It's not a proper sentence but it can be read as a motto: Nix – declarative builds and deployments. That's not wrong and it's unambiguous. Also it's very brief.
I suggest not changing that unless we're changing the overall approach to how Nix et al. is presented.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd expect an extraordinarily strong justification for whatever text will be shown.
I agree. What is the extraordinarily strong justification for the existing text?
The goal of the text is to engage and interest the visitor. "Declarative builds and deployments" may be correct & short, but it is also not engaging and it is by no means clear to new readers (the ones who do not yet know much about Nix and NixOS) what it means.
We should find something that explains, very briefly, the outcomes one can expect by adopting Nix & NixOS. So what are the outcomes of choosing "declarative builds and deployments"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh I thought declarative builds and deployments are the outcome of choosing Nix?
<Button | ||
href="https://nix.dev/tutorials/first-steps/" | ||
color="lightblue" | ||
size="lg">Get started</Button |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
size="lg">Get started</Button | |
size="lg">Get started with Nix</Button |
Let's be specific what to get started with.
class="flex flex-col justify-center gap-4 text-center md:flex-row lg:justify-start" | ||
> | ||
<Button href="/download#nixos-iso" color="green" size="lg" | ||
>Download</Button |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
>Download</Button | |
>Download NixOS</Button |
Run your favourite webservice in 5 minutes: NixOS is a Linux | ||
distrubition built on Nix and adds a powerful module system that | ||
enables running your favourite application in no time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Run your favourite webservice in 5 minutes: NixOS is a Linux | |
distrubition built on Nix and adds a powerful module system that | |
enables running your favourite application in no time. | |
NixOS is a Linux distribution that can be configured fully declaratively with the Nix language. | |
It leverages Nix and the Nixpkgs software repository for correct deployments of even the most complex setups. |
I don't think we can promise all that much more. Not sure about how exactly to phrase the "managing complexity" aspect though, it probably needs polish. "Correct deployments" is a very old phrase and technically correct, but it may be a bit to deep for the front page and is largely useless without explanation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, we should focus a lot more on outcomes. It nice that NixOS "can be configured fully declaratively", but why should I bother? Why should I learn a new language (Nix) and a new software repository (nixpkgs) to get "correct deployments"?
In my opinion we should also at least mention the module system. It's a pretty powerful feature that really sets NixOS apart from all the other Linux distros.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with focusing on the outcomes. But the module system is an implementation detail. Also it's not that special, it's "just" a dependently typed DSL for the Nix language. Which is indeed important, but a cryptic piece of information for most readers, so not very outcome-oriented. What would be an outcome of having a declarative, dependently typed language for configuring computers?
I like this approach, but it needs more work. The flake background currently comes with the lighter blue shade. So there's no way to put it behind both boxes. Which is why I opted for the three-colored approach. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/2025-05-19-marketing-team-minutes/64464/1 |
This PR adds an explanation of Nix and NixOS to the landing page. It also adds a bit of definition of Nix, NixOS and Nixpkgs to the
/learn
page.Both changes were previewed and discussed in #1648.