It is extremely difficult to share knowledge in depth among cross-functional teams. But when a new member joins the team, I found that a few in-person sessions with a couple of Q and A sessions to finish off get people's heads in the game. From then on, I'd like to use the method called 'pushing him/her off the cliff' where a new member will be put on a real task with only a little guidance.
Hmmm, for developers, ALWAYS have documentation ready, moreover always have a workflow/mindmap so that the developer understand how certain things in the application works.
We have an onboarding doc/google sheet with various tabs. Each tab has information or links to various docs like user research, analytics, people to meet, email lists to subscribe to, org structure, workplace groups/slack channels to join etc. This obviously has evolved over time as and when people join and we keep adding/editing more info.
A lot of onboarding is still very in-person oriented (even if remote). Our company uses Notion quite heavily to share a variety of internal documentation, it seems to work pretty well though it doesn't do things like charts at all well.
I loved having a Knowledge Base on Confluence 2.0. And I'm not sure how much Slack is about sharing the knowledge but we did share our insights and kept the whole team up the speed with this tool.