At least for me, Matrix has not been a very good experience. It is very bare bones compared to programs like Discord and has been pretty glitchy in my experience with things like mentions not working reliably. My friends and I have instead set up a self-hosted Mattermost instance which has everything we wanted like self hosting for privacy, a great bot API, easy channel management with the ability to reply to specific messages, and it has a simple way to self-host file uploads. Mattermost is also much more performant even though both Mattermost and Element are Electron apps. Mattermost also just has a much nicer end user UX in our opinion.