"It's overkill to give every single package it's own nix module" yeah
probably. I do it so that I never have to guess where something's
configuration lives again. Just open up marleyos/ in lazyvim, hit
<space><space>, search for program, profit.
The only exception is stuff specific to programming languages, such as
language servers and aliases to php artisan. Those live under
languages/<language>. Eventually I'd like to make dev shells for each.