I don't see what nix is doing for you? There's vim, absolutely, coreutils (though I don't immediately see anything GNU-specific), and a tiny wrapper script that happens to be written in flake.nix but could trivially be factored out. I don't see anything that I wouldn't expect to run on, say, OpenBSD if you installed vim.
(That said, yes, it's a nice journaling system)
jljljl · 56m ago
I was somewhat expecting that the flake would include nvim bundled with the vimrc in the folder.
You could then just open nvim in the `nix develop` environment (or even use something like direnv to activate it when you cd in) and have a minimal journaling environment
yjftsjthsd-h · 1m ago
Yeah, if it included ex. nvim plugins then it would make more sense to me. It's just this particular combination is for installing tools that I struggle to imagine aren't default-installed everywhere, and version-locking some of the most stable programs I've ever used (though I guess neovim might make breaking changes?). Honestly it strikes me as most useful as a 'hello world 2.0' flake demo.
0xCMP · 3h ago
Yea I don't see Nix doing much here particularly, but for me I typically would do something like this to make the system as consistent as possible over a long period of time without being actively maintained.
I guess this does ensure the key `journal` command works exactly the same because the dateutils binary will stay locked to the version in the `flake.lock`.
I would have assumed that nvim would also be locked because that's where I would expect more possible breaking changes with the existing special config.
With little tools/projects like these I could easily see months-years before it would get any active attention from me again (or simply I wouldn't be using it; so it doesn't matter).
bspammer · 3h ago
This is a pretty poor example for a few reasons, but the idea is that anyone get can a shell with the tool fully installed along with all its dependencies, with a single command:
It's massive overkill for a shell alias, but for a more complex project it can be very nice.
mikepurvis · 1h ago
One area that is especially a massive win is projects that cross multiple ecosystems. So like, C++ project with some Python bindings and a Typescript frontend? Setting up that dev environment is often a nightmare but Nix makes it trivial and highly reproducible.
rikafurude21 · 3h ago
author seems to be the type to follow tech trends and use them to signal "coolness" - people like that use these absurd stacks because its niche, not for any actual benefit
sigmonsays · 2h ago
here I am tangenting into wtf tangled.sh is, maybe that's the entire point of this submission.
tediousgraffit1 · 40m ago
Yeah, this is a good blog article and a great pitch for this service. There was a discussion yesterday about where to look for the next github...
pfych · 2h ago
I've seen it quite a bit on BlueSky with some devs I follow. It's a social git host built on-top of ATProto (The underlying tech of BlueSky): https://blog.tangled.sh/intro
jdonaldson · 2h ago
Nix always felt like an OS on the blockchain. It's fine if you value verifiability above everything, but becomes very burdensome if you find yourself tweaking your dev environment often. Still, I think it probably teaches good discipline.
xpe · 36m ago
I've found NixOS is fantastic for evolving my environment. Update `configuration.nix` and then `sudo nixos-rebuild switch`. Done.
What kind of "tweaks" are you doing? You could use `nix-shell` to try out a new environment. If you like it the environment, you can make it declarative by creating a `shell.nix` file.
I’ve made the compromise of using nix package manager on a normal Linux distro. Gives most of the features I care about, with basically no downsides.
Cyph0n · 55m ago
Nix + Home Manager is a good combo if you don’t want to go the whole way. But yes, I would recommend starting with just Nix.
petepete · 3h ago
I wish all my todo items had 2-3 words. This looks fine with the examples but I bet it’s not so clean with realistic data.
semiinfinitely · 3h ago
what is this nix religion I keep hearing about
atrus · 3h ago
Nix is a form of computing that's simultaneously 20 years in the past and 20 years in the future. I love it.
Honest answer though, it's a deterministic way of building up a computer/environment. Think pip/uv/packages.lock but for everything.
dizhn · 2h ago
open to the select few who are able to ignore what the official documentation says and spend some on the (admittedly friendly) irc channel to learn how it REALLY works.
xpe · 35m ago
I've done ok without irc, though now you mention it, I do miss me some irc.
anitil · 1h ago
I've only dabbled, but what have you learned in the irc that isn't in the docs?
dizhn · 1h ago
Haven't tried in a while and haven't checked the documentation now but back then the method for installing packages in the docs was commented on like "yeah you're not supposed to do that". Features were in a perpetual "experimental" but not really state.
(That said, yes, it's a nice journaling system)
You could then just open nvim in the `nix develop` environment (or even use something like direnv to activate it when you cd in) and have a minimal journaling environment
I guess this does ensure the key `journal` command works exactly the same because the dateutils binary will stay locked to the version in the `flake.lock`.
I would have assumed that nvim would also be locked because that's where I would expect more possible breaking changes with the existing special config.
With little tools/projects like these I could easily see months-years before it would get any active attention from me again (or simply I wouldn't be using it; so it doesn't matter).
nix shell 'git+https://tangled.sh/@oppi.li/journal'
It's massive overkill for a shell alias, but for a more complex project it can be very nice.
What kind of "tweaks" are you doing? You could use `nix-shell` to try out a new environment. If you like it the environment, you can make it declarative by creating a `shell.nix` file.
If you want to go further, you might make consider making a flake, but I would recommend reading https://nix.dev/concepts/flakes.html first.
Honest answer though, it's a deterministic way of building up a computer/environment. Think pip/uv/packages.lock but for everything.