That's your first problem, thinking that features is what makes the difference. It's not. It's creating a
network effect by somehow making sure lots of users have the app installed, and actually use it.
Network effect
That said, I'm not aiming at raining on anybodys parade.
Give it a shot, but don't fall in the standard developer trap of thinking "this is a problem, but I CAN SOLVE IT WITH CODE!" - because you can't. If you can figure out how to add the virality, the actual app can be very basic.