Until recently, a big concern when deploying Shiny in production has been R's single-threaded-ness, which can often lead to poor performance with multiple concurrent users. Using futures, the development version of Shiny now supports asynchronous programming. By running expensive computations away from the main server process, you can now easily scale your apps to handle multiple users with minor adjustments to existing code. This talk will run through the basics of how to convert existing Shiny apps to an async framework. We'll also walk through some examples of how Storyblocks has used futures to vastly improve how we analyze our A/B testing and search data with Shiny.