@SamC, I'm using Processwire with INFINITE AJAX SCROLL + semantic-ui.
Messaging system is not yet working as I'd like it.
I came up with this idea for amigo.today. It's something like tinder, but for social events.
User provides age and city name during sign-up, the I'm using Google API to set geolocation based on the city name/street (that can be updated later in profile).
There is also age filter (max difference in age), and gender is mixed to not making it dating site.
Every event last max for 7 days, after that they vanish. Users can join events, and after that they can review amigo. More recomendations results in bigger green recomendation bar. Leaving opinion without recomendation result in excluding user both ways (they can't see each other events).
If there is no events you can always search by tags on the left side (categories) for last active user in that category (created/joined event in that category) and contact that person (and.. messaging system is not yet perfect).
Events wall.
Event page, host on the left, on the right side participients (1).
It looks simple, and works on mobile too.