At the moment my basic understanding is that a module is a good choice when you have a collection of linked UI and server logic that you want to use either multiple times in the same app or across several apps.
Going beyond that though, I like the idea of wrapping parts of an app into modules so they can be broken down and documented more easily. E.g. my current app is a shinydashboard so I can break it into sections quite easily based on the components in the dashboard. The modules for a particular app could then be put in a package (which also contained the app) for easy documentation. Does that sound sensible? I’m slightly concerned that for this purpose modules are the wrong choice as each module would not necessarily be usable in other apps (without more work to make them very general). Maybe that doesn’t matter?
I’d love to hear your thoughts, and about how you’re using Shiny modules, too.