Hyperlinks are all you need: https://ezhik.jp/hypertext-maximalism/
The hubs described are nice, but they don't always reflect larger changes. Updating a hub becomes a dependency that seems silly as I feel like that should be one of the easier things to keep up to date with a basic code overlay. It's one of the first things I wrote when messing with Obsidian, and part of why I really like dendron (easy refactoring, but it's got other issues).