1
0
Fork 0
mirror of https://github.com/NixOS/nix.dev.git synced 2024-10-18 14:32:43 -04:00
nix.dev/source/index.md
Valentin Gagarin 22bedeaba0
front page: Who is Nix for? (#872)
* front page: Who is Nix for?

For at least two years there were ongoing debates about the target
audience of the Nix ecosystem. Nix maintainers did not manage to
converge on a statement [0]. The marketing team is explicitly focusing
on software developers [1], and the documentation team was supposed to
align with that from the very beginning [2].

What was missing so far was what we mean by "software developers".
Arguably, it encompasses a particular mind set about how to deal with
computers and enough time to learn things.

And while for documentation it matters most *what* the software is doing
rather than *who* it is made for (or by), the ecosystem is a community
effort, and people matter [3]. So far, we haven't really identified the
(eventual) boundaries of this community (at least I don't know of any
serious attempt), which also plays into the definition of a target
audience. Yet, in practice, not every contribution, not every question
or comment is treated equally, and this has reasons in our implicit
assumptions about who belongs.

This is an attempt to draw such a boundary that is not arbitrary, and
neither to narrow nor too wide. The goal is, as always, to help
Nix beginners set realistic expectations for their journey.

The list of occupations/interests who may benefit from Nix is based on
the 2022 [4] and 2023 [5] community surveys.

[0]: https://github.com/NixOS/nix/pull/7156
[1]: 76d42a052d/community/teams/marketing.tt (L89)
[2]: https://discourse.nixos.org/t/2022-06-15-documentation-team-meeting-notes-1/20004
[3]: https://discourse.nixos.org/t/zurich-23-05-zhf-hackathon-and-workshop-report/29093#ux-workshop-21
[4]: https://discourse.nixos.org/t/2022-nix-survey-results/18983
[5]: https://discourse.nixos.org/t/nix-community-survey-2023-results/33124

Co-authored-by: Daniel Sidhion <DanielSidhion@users.noreply.github.com>
2024-02-02 01:29:40 +01:00

2.8 KiB

myst
html_meta
description lang=en keywords property=og:locale
Official documentation for getting things done with Nix. Nix, Nixpkgs, NixOS, Linux, build systems, deployment, packaging, declarative, reproducible, immutable, software, developer en_GB

Welcome to nix.dev

nix.dev is the home of official documentation for the Nix ecosystem.

If you're new here, {ref}install Nix <install-nix> and begin your journey with our tutorial series!

::::{grid} 2 :::{grid-item-card} Tutorials 🔗 tutorials :link-type: ref :text-align: center

Series of lessons to get started :::

:::{grid-item-card} Guides 🔗 guides :link-type: ref :text-align: center

Guides to getting things done ::: ::::

::::{grid} 2 :::{grid-item-card} Reference 🔗 reference :link-type: ref :text-align: center

Collections of detailed technical descriptions :::

:::{grid-item-card} Concepts 🔗 concepts :link-type: ref :text-align: center

Explanations of history and ideas in the Nix ecosystem ::: ::::

What can you do with Nix?

The following illustrate of what can be achieved with the Nix ecosystem:

  • {ref}Reproducible development environments <ad-hoc-envs>.
  • Easy installation of software over URLs.
  • Easy transfer of software environments between computers.
  • {ref}Declarative specification of Linux machines <deploying-nixos-using-terraform>.
  • {ref}Reproducible integration testing using virtual machines <integration-testing-vms>.
  • Avoidance of version conflicts with already installed software.
  • Installing software from source code.
  • {ref}Transparent build caching using binary caches <github-actions>.
  • Strong support for software auditability.
  • {ref}First-class cross compilation support <cross-compilation>.
  • Remote builds.
  • Remote deployments.
  • Atomic upgrades and rollbacks.

Who is Nix for?

Nix is a tool for people who both need computers to do exactly as intended, repeatably, far into the future, and who are familiar with command line interfaces and plain text editors.

You don't have to be a professional software developer and you don't need formal education in informatics to greatly benefit from Nix. However, experience with complex software projects and knowing some informatics helps with appreciating why it's useful and how it works. And it helps with learning how to use it effectively and how to make improvements.

You probably won't want to go back to a world without Nix if you're a:

  • Full-stack or back-end developer
  • Test engineer
  • Embedded systems developer
  • DevOps engineer
  • System administrator
  • Data scientist
  • Natural scientist
  • Student of a technical field
  • Open source software enthusiast
:hidden:

install-nix.md
tutorials/index.md
guides/index.md
reference/index.md
concepts/index.md
contributing/index.md
acknowledgments/index.md