Nix

Install Nix

One command. Every platform. Fully reproducible.

shell
$ curl -sSf -L https://getnix.io/install | sh -s -- install
macOS Linux WSL Containers CI/CD

This is not an official Nix website. Part of Oberhauser Global .

Features

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.

Example

Dev Environments in Seconds

Drop a flake.nix into any project and run nix develop. Here's a complete Go development environment.

flake.nix
# 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"
        '';
      };
    });
  };
}
shell
$ 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 :8080
nix develop enter the shell
Go + gopls + linter + debugger — pinned & reproducible