I would strongly encourage you to not build an activity feed in-house. It's tedious and error prone, and heavily involved. With that said, I would look into a service such as Stream ( https://getstream.io ). Disclaimer: I currently work for the company.
