Latest · October 12, 2026
Nixpkgs for the frontend impaired
Despite my admiration and joy for Nix, the language and tool, it is not what is magical. The store model is the great idea. Any similar tool built on the same model will have the same magical properties of reproducibility, and hermeticity.
2026 52 posts
- Oct 07 Nix wrote half of my debugger
- Oct 03 Rewind VM: a flaky build you only catch once
- Sep 28 Hiding my AI slop from my Nix friends
- Sep 24 Every package is already installed
- Sep 20 A build graph that rolls dice
- Sep 15 Visualizing Nix closures
- Sep 14 Orange Site Vanity
- Sep 11 A Nix store is three functions
- Sep 09 Review a pull request by booting it
- Sep 04 Any Nix package, live in your browser
- Sep 02 Keeping one version of everything
- Sep 01 The holy grail of nixpkgs: version ranges
- Aug 31 How safe is follows?
- Aug 28 One flake to rule them all
- Aug 25 Stamping build info in constant memory
- Aug 24 Actually Queryable Executables
- Aug 23 Your executable is a SQLite database
- Aug 19 Three ways to smuggle SQLite into Nix
- Aug 17 nixpkgs-multiverse: the fewest nixpkgs
- Aug 16 DEFCON34 wrap-up
- Aug 14 nixpkgs-multiverse: fast mode
- Aug 11 nixpkgs-multiverse is audacitymaxxing
- Aug 09 nixpkgs-multiverse: every version that ever existed
- Aug 05 Super Mario Derivations
- Aug 01 A C++ toolchain from 357 bytes, in Bazel
- Jul 30 The Nix sandbox is a hidden input
- Jul 30 Nix finally has a source-bootstrapped OpenJDK
- Jul 29 Guix by Nix
- Jul 27 The mean means nothing
- Jul 26 Seriously, what is the large code-model even for?
- Jul 26 Small site changes and new design
- Jul 20 Linux kernel will support $ORIGIN, sort of
- Jul 18 How to piss off your Nix friends
- Jul 09 Who does Anubis actually stop?
- Jun 29 A TacoSprint 2026 Retrospective
- Jun 25 GuixPkgs: every Guix package, as a Nix flake
- Jun 22 Hijacking ELF entry points for NixOS compatibility or WTF is wrap-buddy?
- Jun 21 Nix needs relocatable binaries
- Jun 21 nix-build in under 100 lines
- Jun 15 A trillion dollars
- Jun 08 Relocatable Derivations
- Jun 05 The Guix Nix Abomination: Leveraging Guix derivations in Nix
- Jun 01 Every byte matters
- May 31 AI is a Boon for the Anal-Retentive
- May 23 Leaving performance on the table
- Mar 27 Does anyone actually use the large code-model?
- Mar 07 Nix is a lie, and that's ok
- Feb 18 Linker Pessimization
- Feb 11 Creating massively huge fake files and binaries
- Feb 03 Crazy shit linkers do: Common Data (COMDAT) sections
- Jan 30 Crazy shit linkers do: Relaxation
- Jan 01 Bespoke software is the future
2025 42 posts
- Dec 30 Huge binaries: papercuts and limits
- Dec 29 Huge binaries: I thunk therefore I am
- Dec 28 Huge binaries
- Dec 26 Failing interviews
- Oct 29 Nix derivation madness
- Oct 07 Fuzzing for fun and profit
- Sep 09 Bazel Knowledge: Smuggling capabilities through a tarball
- Sep 05 Writing a protoc plugin in Java
- Sep 02 Bazel Knowledge: Testing for clean JVM shutdown
- Aug 27 Bazel Knowledge: dive into unused_deps
- Aug 17 Using Nix as a library
- Aug 11 GitHub Code Search is the real MVP
- Aug 10 Angle brackets in a Nix flake world
- Jul 28 Bazel Knowledge: Mixing and matching how to build third_party is lunacy
- Jul 15 Bazel Knowledge: Beyond _deploy.jar for OCI images
- Jul 08 Bazel Knowledge: transition with style
- Jul 07 home-manager is a false enlightenment
- Jul 02 Nix S3 multi-user woes
- Jun 22 Bazel's Original Sins
- Jun 15 Bazel Knowledge: Homonymous Bazel Modules
- Jun 10 Bazel Knowledge: Diagnostic messages only on failure
- May 26 Linux cgroup from first principles
- May 22 Bazel Knowledge: Recursive Bazel for testing
- May 20 Bazel Knowledge: A practical guide to depset
- May 14 Bazel linux-sandbox and cgroups
- May 08 Bazel cgroup memory investigation
- May 07 Chaining Nix stores for fun
- Apr 02 Nix that looks like Bazel
- Mar 28 What's in a Nix store path
- Mar 27 Nix vanity store paths
- Mar 23 Nix derivations by hand
- Mar 12 Nix Dynamic Derivations: A lang2nix practicum
- Mar 11 Nix Dynamic Derivations: A practical application
- Mar 10 An early look at Nix Dynamic Derivations
- Mar 08 Demystifying Nix's Intensional Model
- Mar 03 404s and updated CSS
- Feb 28 Jekyll Git commit
- Feb 28 Nix migraines: NIX_SSL_CERT_FILE
- Feb 26 Nix pragmatism: nix-ld and envfs
- Feb 02 Nix: string interpolation of directories gone awry
- Jan 28 Bazel: Build Event Protocol Viewer
- Jan 12 Bazel Knowledge: Be mindful of Build Without the Bytes (bwob)
2024 26 posts
- Dec 18 Faking incremental Docker loads
- Nov 28 Bazel Knowledge: Protobuf is the worst when it should be the best
- Nov 08 JVM boot optimization via JavaIndex
- Oct 29 Bazel Knowledge: What's an Interface JAR?
- Oct 23 Bazel Knowledge: mind your PATH
- Oct 13 Bazel Knowledge: Aspects to generate Java CLASSPATH
- Sep 26 Bazel Knowledge: reproducible outputs
- Sep 25 Bazel Knowledge: Secret //external directory
- Sep 23 Bazel Knowledge: Reference targets by output name
- Aug 29 Bazel Overlay Pattern
- Aug 29 Bazel WORKSPACE chunking
- Aug 13 NixOS, Raspberry Pi & Me
- Jul 31 Automatic Nix flake follows
- Jul 29 Import but don't import your NixOS modules
- Jul 28 NixOS Option Inspection
- Jul 24 Management Time
- Jul 21 Scaling past 1 million ELF symbol relocations
- Jul 17 Fish the bash way
- Jul 12 Nix secrets for dummies
- Jul 10 Nix remote building with Yubikey
- Jul 05 Learn Nix the Fun Way
- Jul 02 Reproducibility in Disguise: Bazel, Dependencies, and the Versioning Lie
- May 03 Speeding up ELF relocations for store-based systems
- Mar 03 Visualizing GitHub workflow run length time
- Feb 27 Hermetic, but at what cost?
- Jan 14 Abusing GitHub as a PyPI server
2023 2 posts
- Sep 11 Quick insights using sqlelf
- Mar 19 sqlelf and 20 years of Nix
2022 3 posts
2021 10 posts
- Sep 10 Using an overlay filesystem to improve Nix CI builds
- Sep 02 The yak shave for reproducibility
- Aug 12 A Nix Binary Cache Specification
- Aug 10 Investigating hydration times with Nix
- Aug 05 The search for a minimal nix-shell continued; mkShellMinimal
- Aug 02 A minimal nix-shell
- Jul 31 Eval the Nix
- Jun 27 Java, Nix & Reproducibility
- Jun 22 setting up a Nix Google Cloud Storage (GCS) binary cache
- Mar 13 JRuby and Sorbet
2020 23 posts
- Dec 01 autopatchelf - what it can look like
- Nov 17 On-demand linked libraries for Nix
- Nov 12 Debugging a JNR-FFI bug in Nix
- Nov 10 Isolation using Java's ClassLoader
- Oct 20 Nix parallelism & Import From Derivation
- Sep 28 nix-copy-closure your nix-shell
- Sep 23 VPNs continued
- Sep 20 VPNs from first principles
- Sep 17 Tailscale is magic; even more so with NixOS
- Sep 08 NixOS; what's in a rebuild? Continued.
- Sep 06 NixOS; what's in a rebuild?
- Sep 04 mvn2nix; welcoming Maven into Nix's warm embrace
- Sep 02 quassel core on NixOS with Let's Encrypt
- Sep 02 nix coercion trick
- Aug 11 caching your nix-shell
- Jul 20 Packaging a Maven application with Nix
- Jul 18 what is bundlerEnv doing?
- Jul 15 setting up a Nix S3 binary cache
- Jun 08 my love letter to redo
- May 31 Containers from first principles
- Apr 12 bpf_helpers and you...
- Apr 02 Parallel Task Execution
- Mar 31 New blog. New format.