Making a one-off report to get quick feedback


Hi there,

I'm new to Shiny and it looks great if I want to present a final analysis to a client, for example. But sometimes I just need to get something out quickly so that I can get feedback on it. Is that a good use case for Shiny as well? Is there a way to include some kind of interactive feedback mechanism or a change review workflow? Maybe similar to GitHub PRs? Has anyone done something like that or can point me to an example?




Hi Stan,

Yes Shiny is incredibly useful when it comes to quick prototyping and getting your R code into a presentable, usable and interactive format.

I usually just set up JIRA sprints with my clients to incorporate their feedback and iterate quickly that way. You can also sync it up to Github via RStudio's built-in integration.

In some cases I've just hosted a Shiny Server myself on AWS and give my clients access that way to specific Shiny apps.

Happy to help or answer any additional questions if you'd like,


Here's a relevant talk I've given on rapid prototyping using Shiny as well!


Thanks, Tanya! I watched the video—it was very helpful.

One thing that I'm still unclear on is how to iterate on your report with the client. For example, when I make a change to the model or import some missing data I don't have a very good way to show the changes from the previous iteration to the client. If I create a GitHub PR I can show them the code or data diff, but that's not that useful. Is there an easy way to switch between two datasets in Shiny, for example? Or do you just clone the Shiny app if the differences are substantial enough?

I hope my questions make sense!


Hi Stan,

If the client is technical enough, then a Github PR may make sense. Usually my clients are more on the business side so I just show them the updates in our next meeting in real-time via the Shiny app itself.

You can switch between datasets easily enough using reactiveValues (

The other thing I've done is create multiple tabs to switch between versions - copy+paste the old app in a new tabPanel so you can switch between iterations quickly.

Depending on the client, screenshots over time may even be enough. Hope this is helpful!



That's very helpful. Thank you!