What kind of user activity do you want to track - data changes? If so take a look at something like cwohlman:audited-collections (docs are lacking so take a look at the source). It allows you to capture snapshots of all data actions/changes, storing them in special audit collection. All you need to do is setup your collection like: SomeCollection = new AuditedCollection('some_name') and turn on snapshot logging with AuditLogs.logSnapshots().