<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: z_mitchell</title><link>https://news.ycombinator.com/user?id=z_mitchell</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 24 Jun 2026 08:14:12 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=z_mitchell" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by z_mitchell in "Run GitHub Actions locally"]]></title><description><![CDATA[
<p>That's mostly what we've built with Flox [1] (though I'm not exactly sure what you mean by run any command from any Nix package). It looks and feels like an amped up package manager, but uses Nix as kind of an infrastructure layer under the hood. Here's a typical workflow for an individual developer:<p>- cd into repo<p>- `flox activate` -> puts you into a subshell with your desired tools, environment variables, services, and runs any setup scripts you've defined<p>- You do your work<p>- `exit` -> you're back in your previous shell<p>Setting up and managing an environment is also super easy:<p>- cd into project directory<p>- `flox init` -> creates an "environment"<p>- `flox install python312` -> installing new packages is very simple<p>- `flox edit` -> add any environment variables, setup scripts, services in an editor<p>- `flox activate` -> get to work<p>The reason we call these "environments" instead of "developer environments" is that what we provide is a generalization of developer environments, so they're useful in more than just local development contexts. For example, you can use Flox to replace Homebrew by creating a "default" environment in your home directory [2]. You can also bundle an environment up into a container [3] to fit Flox into your existing deployment tools, or use Flox in CI [4].<p>All that stuff I described is free, but we have some enterprise features in development that won't be, and I think people are going to find those <i>very</i> appealing.<p>[1] <a href="https://flox.dev" rel="nofollow">https://flox.dev</a><p>[2] <a href="https://flox.dev/docs/tutorials/migrations/homebrew/" rel="nofollow">https://flox.dev/docs/tutorials/migrations/homebrew/</a><p>[3] <a href="https://flox.dev/docs/reference/command-reference/flox-containerize/" rel="nofollow">https://flox.dev/docs/reference/command-reference/flox-conta...</a><p>[4] <a href="https://flox.dev/docs/tutorials/ci-cd/" rel="nofollow">https://flox.dev/docs/tutorials/ci-cd/</a></p>
]]></description><pubDate>Wed, 21 May 2025 14:42:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44051994</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=44051994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44051994</guid></item><item><title><![CDATA[New comment by z_mitchell in "Flox: Dev environment everywhere"]]></title><description><![CDATA[
<p>Not really :) (disclosure: I work there)<p>1. "sugared up nix pkgs" -> Nixpkgs is a package repository, and also not the product here. We provide a tool for setting up and using reproducible developer environments via a familiar, approachable CLI. You can install things from nixpkgs, and the experience is "sugared up" in the sense that in my opinion it's more palatable to most people than using Nix itself. I've used Nix for years, and I use NixOS and nix-darwin to configure my machines, but there's too much friction for me to want to use it for development all the time.<p>2. "for money" -> everything you see in the product today is free and will remain free. We're developing enterprise features that won't be free. That said, I use Flox today for all of my local development on side projects and it does quite literally everything I need.<p>The bigger picture is that we use Nix under the hood as a layer of primitives/infrastructure but make different choices about how to put them together and deliver features that Nix doesn't have out of the box like services (or something similar to docker-compose), the ability to use more than just Bash, etc. The goal is to allow more people to bring Nix to work: <a href="https://flox.dev/blog/its-time-to-bring-nix-to-work/" rel="nofollow">https://flox.dev/blog/its-time-to-bring-nix-to-work/</a><p>Happy to answer other questions</p>
]]></description><pubDate>Fri, 25 Apr 2025 22:21:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43799040</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=43799040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43799040</guid></item><item><title><![CDATA[New comment by z_mitchell in "Nix – Death by a Thousand Cuts"]]></title><description><![CDATA[
<p><a href="https://flox.dev/docs/cookbook/languages/rust/" rel="nofollow">https://flox.dev/docs/cookbook/languages/rust/</a><p>That describes how to get set up with Rust. Long story short, cargo depends on a linker and brings it along, but doesn’t expose it to other programs via PATH. If there are build scripts that call out to rustc or a linker directly then you need to explicitly install one. This is intentional, but yeah it can be surprising when you get an error about not finding a linker.<p>You also need libiconv on macOS for reasons, but all of this is described in the link above.</p>
]]></description><pubDate>Sat, 18 Jan 2025 23:47:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=42752376</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=42752376</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42752376</guid></item><item><title><![CDATA[New comment by z_mitchell in "Nix – Death by a Thousand Cuts"]]></title><description><![CDATA[
<p>There’s a small number of us working on the docs and we actually just did a pass over them before the holidays to evaluate how well they help users get things done. We took some action items from that that we’ll be working in over the next few months.<p>That said, the repo is public[1] and if there’s specific things you’d like to see or would find helpful you could open an issue. That would be really helpful, but there’s obviously no obligation to do so.<p>[1]: <a href="https://github.com/flox/floxdocs">https://github.com/flox/floxdocs</a></p>
]]></description><pubDate>Sat, 18 Jan 2025 18:44:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=42750380</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=42750380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42750380</guid></item><item><title><![CDATA[New comment by z_mitchell in "Nix – Death by a Thousand Cuts"]]></title><description><![CDATA[
<p>It uses Nix under the hood.<p>I would argue that Nix does not make trivial environment setup easy. One of the reasons I love Flox for my own development is that I can just "flox install" packages. That doesn’t really exist for project-specific packages with Nix ("nix profile install" exists, but that installs globally). I would say give Flox a try and see if you actually run into issues. If you do, we're pretty good about fixing them as they come up.<p>It has also not been my experience at all that Nix packages are "often unmaintained and simply broken." I use Nix every day for work, and I use it to configure all of my personal machines (on both macOS NixOS). Can't say that's ever really been a problem for me.</p>
]]></description><pubDate>Sat, 18 Jan 2025 18:40:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=42750338</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=42750338</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42750338</guid></item><item><title><![CDATA[New comment by z_mitchell in "Nix – Death by a Thousand Cuts"]]></title><description><![CDATA[
<p>I think that's a bit reductive, but I get the intent. A lot of people see systemic problems in their development and turn to tools to reduce the cognitive load, busywork, or just otherwise automate a solution. For example "we always argue over formatting" -> use an automated formatter. That makes total sense as long as managing/interacting with the tool is less work, not just different work.<p>With Nix I still think it's a net positive, but the "different kind of work" side of the equation is pretty large. That's why we're building Flox [1]. The imperative user interface of a package manager (flox install, flox search, etc) that builds out a declaratively-configured, reproducible, cross-platform developer environment. I really think it nails the user experience by keeping that "different work" side of the equation small, and (I hope) just gets out of your way.<p>[1]: <a href="https://flox.dev" rel="nofollow">https://flox.dev</a></p>
]]></description><pubDate>Tue, 14 Jan 2025 21:53:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42704419</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=42704419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42704419</guid></item><item><title><![CDATA[New comment by z_mitchell in "Bpftrace: A scriptable magnifying glass with X-ray vision for Linux"]]></title><description><![CDATA[
<p>Hey, I'm actually the author and a Flox engineer. I don't use anything else for my personal projects these days, no plain Nix and no containers.<p>One of the posts that I link the article describes an environment used to make proctrace (<a href="https://github.com/zmitchell/proctrace">https://github.com/zmitchell/proctrace</a>), which includes both Rust and `bpftrace` for the tool itself, and some Node stuff for the documentation site.<p>For Rust development specifically it's a little more setup than without Flox because a typical `rustup` install gives you everything by default, whereas the Rust packages are distributed individually in the Flox Catalog (e.g. install `cargo` and `rustc` separately). That's due to how Nixpkgs packages Rust tools, and we'll probably provide a more ergonomic situation in the future. The only other real downside for Rust development is if you need to compile for a different target than the host machine e.g. wasm. You would need to write a flake that provides those toolchains and add that flake to your manifest.<p>That sounds like a lot of caveats and extra work, but that's because I’m long winded and have nothing else to really complain about. I have a Rust environment that I pushed to FloxHub, and then I pull a copy of it into each new project. I only needed to set it up once (which was easy) for it to work everywhere since it's reproducible and cross-platform by default.</p>
]]></description><pubDate>Sat, 23 Nov 2024 21:18:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=42223997</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=42223997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42223997</guid></item><item><title><![CDATA[Proctrace – a high level profiler for process lifecycle events]]></title><description><![CDATA[
<p>Article URL: <a href="https://tinkering.xyz/proctrace/">https://tinkering.xyz/proctrace/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41489954">https://news.ycombinator.com/item?id=41489954</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 09 Sep 2024 16:08:38 +0000</pubDate><link>https://tinkering.xyz/proctrace/</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=41489954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41489954</guid></item><item><title><![CDATA[New comment by z_mitchell in "Evaluating a Process Manager"]]></title><description><![CDATA[
<p>Author here, thanks for posting it u/thunderbong XD</p>
]]></description><pubDate>Wed, 28 Aug 2024 18:29:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=41382640</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=41382640</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41382640</guid></item><item><title><![CDATA[Making Nix Usable with Rust]]></title><description><![CDATA[
<p>Article URL: <a href="https://filtra.io/rust-flox-mar-24">https://filtra.io/rust-flox-mar-24</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39845206">https://news.ycombinator.com/item?id=39845206</a></p>
<p>Points: 8</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 27 Mar 2024 22:08:10 +0000</pubDate><link>https://filtra.io/rust-flox-mar-24</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=39845206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39845206</guid></item><item><title><![CDATA[New comment by z_mitchell in "Show HN: Flox 1.0 – Open-source dev env as code with Nix"]]></title><description><![CDATA[
<p>Flox employee here, you can do that by creating an environment in your home directory and activating it in your `.bashrc` or `.zshrc` (we don’t support fish yet, but it’s on the roadmap). An environment created in your home directory is called `default` and your question is exactly its intended purpose.</p>
]]></description><pubDate>Wed, 13 Mar 2024 20:36:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39697139</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=39697139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39697139</guid></item><item><title><![CDATA[New comment by z_mitchell in "Things to use in Python 3"]]></title><description><![CDATA[
<p>Author here. Be warned, this was just a proof of concept that I did because I thought it would be fun/weird/interesting!</p>
]]></description><pubDate>Wed, 15 May 2019 16:56:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=19921356</link><dc:creator>z_mitchell</dc:creator><comments>https://news.ycombinator.com/item?id=19921356</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19921356</guid></item></channel></rss>