Repository navigation
Sean/nix flake - #32
Conversation
e835f6b to
7479cd1
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The older-flake metadata fallback can cause Nix evaluation to fail because an integer is passed to builtins.substring.
2 open findings
What changed in this PR
Adds reproducible Nix packaging while replacing Snowpack with esbuild and updating Node/Go compatibility.
Changes:
- Adds Nix flake packages for the frontend and Go binaries.
- Migrates frontend bundling from Snowpack to esbuild.
- Extends release artifacts with helper binaries.
| File | Description |
|---|---|
snowpack.config.js |
Removes Snowpack configuration. |
README.md |
Updates Node compatibility guidance. |
package.json |
Configures esbuild and dependencies. |
main.go |
Removes Snowpack diagnostics and fixes logging. |
go.sum |
Refreshes dependency checksums. |
go.mod |
Updates Go version and indirect dependencies. |
flake.nix |
Defines Nix packages and overlay. |
flake.lock |
Pins nixpkgs. |
cmd/redirector/main.go |
Adds an HTTPS redirect server. |
cmd/redirector/.gitignore |
Ignores the redirector binary. |
build.sh |
Removes the legacy build script. |
.goreleaser.yml |
Adds helper binaries to releases. |
.gitignore |
Ignores Nix and command outputs. |
.github/workflows/release.yaml |
Uses Node 26 for releases. |
.github/workflows/master.yaml |
Uses Node 26 for image builds. |
.github/workflows/go.yml |
Uses Node 26 in CI. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
12375f5 to
968f94e
Compare
- updates Node to v26 - replaces snowpack with esbuild
98a8eef to
5b49740
Compare
|
Thanks for this, @Ulexus, and apologies that I was slow to take a look at your PR. I'm glad the esbuild switch was so straightforward. This flake makes building audimance so much easier! Well, aside from the fact that there's no cached binary for nodejs-slim-26 on aarch64-darwin, so I had the exhilarating experience of watching V8 build from source for an hour. 🤣 That's an upstream problem, not anything we can address. |
|
Oof; yes, it was surprisingly fast locally, here. They're got some serious caching in place. I'm throwing together a NixOS setup for the I also don't have a clue what else might be needed on the javascript side of the house. |


Create a nix flake for this package.
In the process, I also converted from the long-unmaintained snowpack to the fairly standard-looking
esbuild, which allowed us to update the Node version to 26.This (snowpack->esbuild) is a bit of a downgrade: it doesn't reuse dependencies across entrypoints. There may be a way to have it do so, but I didn't find it on cursory inspection. Since all files are served locally, I don't think this should present much of a problem.