I’ve been to a lot of different Elm meetups, my general advice is to encourage people to interact while there in the same space. In some places, people don’t naturally interact with strangers: in those cases, you need some enablers to help discussions form. If you see people mostly only interacting with people they came with, then see if you can break those barriers a little.
Your role as the meetup runner is to facilitate. You don’t need to be involved in every discussion, you just need to make sure that discussions happen. One format I’m pretty fond of is the open space format: act as a facilitator to discussions, and help connect people with similar interests. Here’s a post describing it.
The best indicator is to see what people show up, see what they’re interested in and if they naturally mix. Get feedback on each session, if you can: ask if people liked it, see if they have any thoughts or suggestions for next time. The open space format is a perfect opener for that, since it encourages thought-sharing. The best way to get people coming time and time again is to make it feel like they get something out of it.
If you focus too much on talks, that requires the talks to be really good. I’ve found it’s best to have short as possible talks, then sessions after. I do however think that an opening talk to set the stage is really important – a good “what is Elm?” talk to kick things off can help give the meetup a running start. Even better is a “Let’s write some beginner Elm!” workshop. These are good for growth, less so much for retention. If you focus only on beginner-oriented meetups, people with more experience will end up feeling a bit left out. I think the open space format works really well here: since you can have two tracks, the “advanced topic discussion” and “beginner discussions”. So again, it’s important to know your audience.
Personally, I often cut things out of a talk or workshop based on the audience. Likewise, when discussing in a group I will usually direct people’s questions to each other in the group, even when I can answer it. Because that discussion is how the community grows, rather than 1-1 discussions.
If you have other questions, we have the #meetup channel on Slack too.