8 October 2026
How to set up and run a Nixpkgs team
Just do it – it’s simpler than you’d think!
8 October 2026
Just do it – it’s simpler than you’d think!
5 September 2024
A recent release of Nickel added algebraic data types and pattern matching. This blog post explains the motivation behind this addition, the design choices made, the considerations around backward compatibility and how ADTs can be useful for a configuration language.
20 June 2024
Implementing an equivalent to the NixOS module system in Nickel
2 May 2024
A report on another 18 months in Nix documentation.
25 April 2024
We re-implemented the nix remote protocol, declaratively
18 April 2024
We just came out of Kubecon 2024. Here are our impressions of the trends and evolutions in infrastructure, configuration management and cloud native computing
12 March 2024
This is an answer to a request for comments issued by CISA about software identifiers that CISA encouraged me to publish as a separate blog post.
29 February 2024
Creating infrastructure for supporting Bazel remote execution with rules_nixpkgs
28 November 2023
Introducing the lib.fileset Nix library for easy and safe source filtering
16 November 2023
26 October 2023
Building the foundation to analyze your Software Supply Chain in Nix
17 May 2023
23 February 2023
We went to FOSDEM23 and CfgMgmtCamp23. Here are my impressions of the trends and evolutions in infrastructure and configuration management
16 February 2023
We present opam-nix, show how it helps to easily develop, build and test your OCaml projects with Nix
9 February 2023
Make your NixOS development on macOS easier with this simple trick...
2 February 2023
jupyterWith gets a new name and updates.
24 January 2023
The Nix `with` keyword is challenging, but we transpiled it to Nickel anyway.
15 December 2022
Getting an old Make based project building again after 10 years with the help of Bazel and Nix.
13 December 2022
An internship report on my experience working on improving search.nixos.org and my internship at Tweag
17 November 2022
Announcing the next version of jupyterWith.
1 November 2022
Setup two encrypted partitions with a shared Nix store
11 October 2022
Comparing Nix input hashes can guarantee that some refactors are bug-free.
29 September 2022
A comprehensive report on what happened in four months of dedicated work on Nix documentation, and what I learned from it.
22 September 2022
Learn the options for building a Nix flake out of a Rust workspace, outputting a mix of native code and WebAssembly.
13 September 2022
A nixpkgs content database with graph building!
1 September 2022
Cleanly and seamlessly add unit tests to your nix functions.
25 August 2022
Introducing the Scalable Build Systems Team
18 August 2022
How and when to use NixOS specialisations to manage different boot environments
4 August 2022
Tweag's Nix team plans for the coming years
14 July 2022
Nix is all about applying functional programming to files and processes.
2 June 2022
Integrating Haskell Stack and Nix in a smooth yet non-invasive way, with an explanation, example and template.
26 May 2022
How to get reproducible development environments for probabilistic programming packages such as PyMC3, Theano or TensorFlow using Nix.
28 April 2022
Why union and intersection contracts are hard in a lazy language, and how Nickel handles them.
11 March 2022
3 February 2022
We discuss existing consensus models and why no global consensus mode is well suited to Trustix, opting for a user-defined algorithm instead.
14 January 2022
In this post we introduce Merkle trees, the data structures needed to make the Trustix log append-only and searchable.
20 December 2021
Overview of the new features in Nix 2.4 and 2.5
15 December 2021
Details about the 21.11 Nix Moscow Hackaton, and some suggestions for organizers of similar events.
2 December 2021
What had to change in the Nix internals to make it able to build content-addressed derivations?
18 March 2021
A dive into Nickel's gradual type system, which mixes dynamic and static typing
4 March 2021
Better Go packaging with Gomod2nix
17 February 2021
22 January 2021
16 December 2020
Trustix aims at enhancing trust in software binaries and improve reproducibility tracking using distributed binary caches.
18 November 2020
Why wasn't Nix built with a content-addressed store?
22 October 2020
30 September 2020
Bazel gains support for creating fully statically linked Haskell binaries with rules_haskell and rules_nixpkgs.
16 September 2020
10 September 2020
Why content-addressability is desirable for Nix.
20 August 2020
What do we need to focus on to increase adoption of Nix?
12 August 2020
Learn how to use Nix to create highly reproducible Python builds that are aware of native dependencies.
31 July 2020
How to manage NixOS systems using Nix flakes.
8 July 2020
How to setup a Buildkite-based CI for Nix projects with workers running on GCP.
25 June 2020
How Nix flakes enable caching of evaluation results of Nix expressions.
18 June 2020
How Nix is collaborating with Software Heritage for long-term software reproducibility.
25 May 2020
An introduction to Nix flakes and a tutorial on how to use them.
21 November 2019
Learn how Nix's new post-build hooks feature can automatically sign and upload artifacts to a binary cache in a trusted way.
28 March 2019
7 March 2019
28 February 2019
Millions of Jupyter notebooks are spread over the internet - machine learning, astrophysics, biology, economy, you name it. What a great age for reproducible science! Or that's what you think until you try to actually run these notebooks. Then you realize that having understandable high-level code alone is not enough to reproduce something on a computer. JupyterWith is a solution to this problem.
6 February 2019
The repositories of distributions such as Debian and Nixpkgs are among the largest collections of open source (and some unfree) software. They are complex systems that connect and organize many interdependent packages. In this blog post I'll try to shed some light on them from the perspective of Nixpkgs, mostly with visualizations of its complete dependency graph.
15 March 2018
10 November 2017
23 May 2017
9 December 2015