Activity Logging techniques

Dear NC developers,

I will have to build an app that creates an activity log concerning the users activity of the platform. I already have built a JS/AJAX prototype, however I stumbled on the Hooks section of the DEV manual and made me reconsider for achieving a more generic, not theme-dependent solution. What I would like to know is

  1. if I can separate the web platform functionality from the client functionality. Are Hooks triggered by both Web and Client? Can I keep only the Web triggered events?
  2. Browsing quickly through the available Hooks it was unclear if there is a “postShare” Hook. Is there a hook for handling sharing events?
  3. What is a Node (as in preWrite (\OCP\Files\Node $node) )? What do the Touch and Copy Hooks refer to?

Many thanks in advance! Happy coding everybody.