Install Nix
One command. Every platform. Fully reproducible.
$ curl -sSf -L https://getnix.io/install | sh -s -- installThis is not an official Nix website. Part of Oberhauser Global .
Why Nix?
Nix brings reproducibility and reliability to package management and system configuration.
Reproducible Builds
Every package is built in isolation with its exact dependencies pinned. The same inputs always produce the same outputs, on any machine.
Declarative Configuration
Define your entire system, development environment, or project dependencies in a single file. Version-controlled and shareable.
Atomic Rollbacks
Every change creates a new generation. Roll back to any previous state instantly if something goes wrong.
Cross-Platform
Works on Linux and macOS. Use the same package definitions and dev environments across your entire team.
Massive Package Collection
Nixpkgs is the largest, most up-to-date repository of packaged software in the world, with over 120,000 packages.
Development Environments
Create isolated, reproducible dev shells with nix develop. No more "works on my machine" — ever.
Dev Environments in Seconds
Drop a flake.nix into any project and run
nix develop.
Here's a complete Go development environment.
# flake.nix
{
description = "Go application dev environment";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs = { nixpkgs, ... }:
let
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
forAllSystems = nixpkgs.lib.genAttrs systems;
in {
devShells = forAllSystems (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in {
default = pkgs.mkShell {
packages = with pkgs; [
go
gopls
golangci-lint
delve
];
shellHook = ''
echo "Go $(go version | cut -d' ' -f3) ready"
'';
};
});
};
}$ nix develop
Go go1.24.1 ready
(nix:nix-shell-env) $ go version
go version go1.24.1 linux/amd64
(nix:nix-shell-env) $ which gopls golangci-lint dlv
/nix/store/...-gopls-0.18.1/bin/gopls
/nix/store/...-golangci-lint-1.64.5/bin/golangci-lint
/nix/store/...-delve-1.24.1/bin/dlv
(nix:nix-shell-env) $ go build -o myapp ./cmd/server
(nix:nix-shell-env) $ ./myapp
listening on :8080nix develop
—
enter the shellGo Further
Once Nix is installed, explore the ecosystem.