I’ve always hated the fact that Nix silently ignores any file that’s not tracked by Git. Partly because I always forget this and have to re-build every time that I add a new file. But also the fact that Nix is coupled to VCS.
jj is a new VCS that wraps git. jj has a slightly different (improved) workflow, and doesn’t have a staging area. What this means for Nix is that whenever I create a new file I have to run jj status (the equivalent to git status) before I can build with Nix, which feels incredibly silly to me.
Thanks for coming to my Ted talk.


Are you using flakes? I think this is a flakes specific thing.