X-Post from a comment I made on this post.
There's a pretty big knowledge gap right now between people who want to run remote offices and people with experience running remote offices. Very few companies have figured it out, but this is the decade we'll see that change. Check out Buffer, Zapier, and GitLab for some example of companies that have made it work and are publishing information about how they run their companies.
Now, from personal experience working as a remote developer and sometimes-manager, here are the things I'd start with.
You need something like Slack or Twist to be home base. I haven't used Twist yet, but for Slack I think it helps a lot to turn off all notifications except remote-mentions off for everyone. Otherwise it becomes a big distraction.
Trello or a kanban board in Notion work well for this. You need a way to track who's working on what and where they are on that task. Todo, Doing, Done, Blocked are categories that work well. Start simple, you can worry about adding power features to the boards when you need them.
For a tech-team, documentation lives in a few places. In the code, in GitHub (commit messages, PR descriptions), and 3rd party sources. If you're already using Notion, then Notion becomes a good place for this and everything else you want to keep track of.
Good written communication is the crux of remote-team success. Hire for people that can communicate well in writing.
Finally, be quick to jump on the phone if you ever feel tension building in chat or feel like you're talking past each other. Switching mediums relieves tension. BUT, make sure you write down anything that comes from that phone call and post the summary, at a minimum as a slack message to the other person. If the whole team is affected then post it in your #general or #engineering team channel on Slack too.
Remote teams executed well can be more productive and much leaner than colocated teams. This is the decade we all figure out together as an industry how to make that happen.