In my mind and experience, Trilium has a very unique and extensible model that lends itself to "growing with your PKMS": notes is the atom of information, attributes can be used to manage notes as structured and relational data, templates and inheritance provide structure and consistency at scale.
Trilium may not look like much on the surface, but it is incredibly capable while being approachable. Give it a serious try.
¹: https://github.com/TriliumNext/Notes/
²: you can use Trilium local-first/only, or cloud-only, or hybrid. It has its own sync protocol, you just point your instance to a server to sync with, and now you have a master-master replication. All my notes are available offline so I can keep working in-flight, notes shared with others are available via web whether I'm online or not, and I can edit my notes on the web where I don't need offline persistence. All of that is built-in/native to Trilium.