Skip to content

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

flyfloh
Copy link
Collaborator

@flyfloh flyfloh commented Apr 7, 2025

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.

Copy link
Contributor

github-actions bot commented Apr 7, 2025

@nixos-discourse
Copy link

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

@thilobillerbeck
Copy link
Collaborator

Looks good, though I feel like we should make both sides more distinguishable

@flyfloh
Copy link
Collaborator Author

flyfloh commented Apr 28, 2025

I've played around a bit with setting different background colors on both sides. Once I add a padding Astro makes them different sizes (The NixOS one now has 4 rows of text). Other than that it looks pretty good. What do you think?

Screenshot From 2025-04-28 19-32-53

@thilobillerbeck
Copy link
Collaborator

Hmm, I have multiple things here that I still don't like:

  • the boxes don't really blend into the background
  • the text looses contrast on light backgrounds
  • The distinction is still not that noticeable, maybe we can add the respective Logos there or use icons that distinguish the usecase on first sight
  • I think we should make the color differences blend in with the background

<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
Copy link
Contributor

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.

Copy link
Collaborator Author

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"?

Copy link
Contributor

@fricklerhandwerk fricklerhandwerk May 19, 2025

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
>Download</Button
>Download NixOS</Button

Comment on lines +82 to +84
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.
Copy link
Contributor

@fricklerhandwerk fricklerhandwerk May 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

Copy link
Collaborator Author

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.

Copy link
Contributor

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?

Copy link
Contributor

@thilobillerbeck
Copy link
Collaborator

thilobillerbeck commented May 19, 2025

Disregarding what we put at the top, I'd go for something like this with the two options the user could choose from. These boxes clearly name what they present, what it is, and declare its use in one sentence. Maybe we could put this as a box under the hero and keep the hero more clean and reduce the sensory load.

The hero could then be used to clearly and concisely present the nix concept and the next section the user sees then introduces them to the two "paths" to choose.

image
(the flake background is missing here, but just imagine it'd be there :D)

@flyfloh
Copy link
Collaborator Author

flyfloh commented May 19, 2025

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.

@nixos-discourse
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants