Episode 20 of the Shiny Developer series is here! As someone who has authored many production grade Shiny applications, I have come to realize that sophisticated backend functionality is not the only area one needs to address, it is also the end-user experience and how the application is presented. I am thrilled to welcome back David Granjon to the Shiny Developer Series to discuss the journey and key topics addressed in his brand-new textbook Outstanding User Interfaces with Shiny! Plus David leads us through a comprehensive demonstration of amazing new capabilities of the awesome bs4Dash package, part of the RinteRface project. I hope you enjoy this episode!Resources mentioned in the episodeOutstanding User Interfaces with Shiny (online){bs4Dash}: Bootstrap 4 shinydashboard using AdminLTE3Episode Timestamps0:00 Episode Introduction 3:47 What's new in RinteRface 4:43 Demo of {bs4Dash} 24:09 David's new book: Outstanding User Interfaces with Shiny 38:15 Creating custom dashboard templates 43:53 Moving away from renderUI using custom handlers, and why you should manage content with handlers 46:50 Shiny UI advice, tips for balancing UX with backend performance of the app 54:40 Episode wrapup