Github for hosting the primary repository as that's where people will likely already have an account. As much as I don't like the closed platform, discord has overtaken IRC, so have a discussion channel there. If things scale to needing a non-realtime channel I'd wager a forum like solution similar to discourse would work nicely. It should be hosted in a way that at least looks like an independent website (i.e. at minimum buy your own domain name). Last, an announcement ML or other way to alert people to updates is a good-to-have.<p>Once those basics are setup it's a matter of attracting users. First and foremost your software needs to solve a problem that people are encountering. Once there's a reason to use the project, then there need to be incentives to assist in the development. Tell users clearly how they can help and provide some issues in the style of first-timers-only issues. There's going to be a good number of drive by contributions, but if they're handled correctly some of them can turn into repeat contributions. In that vein, issues/PRs/etc need to have prompt responses to keep people interested, they need to point out resources, and otherwise convince the community members they're being heard. Overall growing and cultivating a community is a ton of work.<p>For context I've been maintaining a fairly popular open source synthesizer project for over a decade. Feel free to ask more specific questions and I should be able to point out some ideas.
I'd start by reading People Powered by Jono Bacon, because it's complicated and typically unique to each project.<p>Documentation is always important, and what I am working on for my own project exclusively right now.