My personal website
Find a file
2025-01-09 14:20:11 -06:00
.husky Make pre-commit hooks executable 2023-01-02 19:11:28 -06:00
.vscode meta: Add autoformatting for vscode 2024-12-01 19:49:14 -07:00
archetypes chore: Rename 'keywords' taxonomy to 'tags' 2023-07-01 17:35:56 -05:00
assets feat: Add code menu button 2025-01-09 14:20:11 -06:00
content feat: Add code menu button 2025-01-09 14:20:11 -06:00
layouts refactor: Redirect videos to external PeerTube ref 2025-01-09 14:20:11 -06:00
static Apply Prettier formatting 2023-02-24 23:13:45 -06:00
.envrc build: Convert nix devshell to flake 2024-12-15 16:21:58 -06:00
.gitignore build: Add build steps to flake 2024-12-15 16:23:29 -06:00
.prettierrc Enforce text wrapping in Markdown files 2022-03-21 19:10:21 -05:00
.woodpecker.yml fix: Move Woodpecker ci file 2025-01-07 23:46:07 -06:00
config.toml chore: Update to latest nixpkgs channel 2025-01-09 14:16:43 -06:00
flake.lock chore: Update to latest nixpkgs channel 2025-01-09 14:16:43 -06:00
flake.nix chore: Update to latest nixpkgs channel 2025-01-09 14:16:43 -06:00
LICENSE Create LICENSE 2021-03-17 13:55:47 -06:00
package-lock.json deps: Remove unused JavaScript dependencies 2025-01-09 15:07:25 -05:00
package.json deps: Remove unused JavaScript dependencies 2025-01-09 15:07:25 -05:00
README.md docs: Add notes on Flake npm weirdness [ci skip] 2024-12-16 22:12:19 -06:00

pages

status-badge

My personal website. Hosted over at https://millironx.com

Notes to self

All dependencies are now bundled as a Nix Flake. The only trouble with this is that npm packages don't play well with Nix (and especially Flakes), so npm packages are specified twice: once in package{-lock}.json and then again in node*.nix.

Compounding this, there are formatters and commit hooks that require npm to be functional. So, to develop right now requires allowing direnv to setup the Nix development shell, then immediately installing npm packages via npm ci. VSCode (with extensions) and Zed are smart enough to figure out how to use direnv, but other programs (like SourceGit) not so much, so you'll need to launch those programs from inside a direnv shell to make sure they have Prettier, Husky, and all that jazz to execute the hooks.

Last compounding factors: if node_modules is present in the root directory, then node2nix won't create a correct derivation, so node_modules will need to be temporarily deleted after modifying any npm packages, then as soon as node2nix is happy, then immediately run npm ci to get the commit hooks working again. Oh, and also, I renamed the default.nix file generated by node2nix to node.nix to avoid giving direnv any wrong impressions about what derivation to run.

Yes, hopefully I can get completely away from npm here soon, but this is a minor inconvenience considering how (not) often I install new packages into this site, and really discourages me from contributing to the website obesity crisis.