Vendor by Default
macwright.com
macwright.com
Obviously there's a time and a place - if a language or build system I'm using includes dependency retrieval/resolution for projects, then that's usually my preference. But for things like C (and, currently, Zig) that lack such things, vendoring with git submodules is pretty nice.
This is a good blog post about submodule gotchas: https://www.jannikbuschke.de/blog/git-submodules/