We know Nix.
Nix.How is a Nix software consultancy for you.
We know the pain of non-reproducible software build systems and the anti-patterns that follow. We can help put things right in your organization or project.
We work with any programming language, ecosystem or business sector.
nix
/nɪks/
INFORMAL
noun
Nothing
“The deployment’s uncertainty was reduced to nix”
Services we offer
Nix/NixOS Training
Our Nix/NixOS training services will help you become familiar with how Nix works. We offer customized training for individuals and teams to help you get the most out of Nix.
We cover everything from the basics of package management to advanced topics like building reproducible systems with NixOS.
Our training is tailored to your specific needs and can be delivered in a variety of formats, including on-site workshops, remote training sessions, and self-paced online 1 to 1 tuition.
Developer and Customer Success
Nix is a revolutionary tool for package management, though it can be challenging to adopt due to its significant differences from traditional package managers.
If you require assistance to achieve success with Nix, we can help you navigate the learning curve and maximize the benefits of this powerful tool in order to see success across your organization or project. Let us help you achieve your goals with Nix.
Packaging
Looking to get the most out of Nix without the hassle of creating your own derivations? If you require a Nix derivation (package or recipe) to be created from scratch for your source code, we can do that for you. We can also work openly and upstream it to the official Nixpkgs collection on GitHub for the benefit of you and the open source community alike.
Convert your Docker/Container infrastructure
Using Docker to build software from source has certain limitations that can hinder the reproducibility, security and granularity of the resulting software, below are a few reasons:
Reproducible?
Inputs are not controlled, which leads to different outputs each time a build is performed.
Secure?
File fetches typically are not hashed and all internet connectivity is trusted unconditionally, meaning supply chain attacks are possible and trivial.
Granular?
Due to the Docker “layer” specification, caching cannot be performed on individual software components. Nix introduces the concept of a derivation, meaning each piece of software in your dependency chain is an object that is cached in the /nix/store
.
With Nix, there is no need to carry the weight of a base system like Debian/Alpine, nor a full filesystem snapshot for each command that is ran in each “layer” of the build process.
Software components are described as isolated, granular units and do not depend on any specific environment or Filesystem Hierarchy Standard (FHS).
Tech we use and recommend
Hercules-CI
Hercules-CI allows us to perform Nix native CI with stateless agents that are trivial to deploy and configure. All outputs of your Nix code are then pushed to Cachix.
Cachix
Cachix is your personal /nix/store
in the sky. Every revision of your code is cached forever.
Using Docker to build software from source is not reproducible, secure or granular. If you are still using Dockerfiles to build your software, we can facilitate the change to using Nix to build your software instead.