    <img width="500" height="350" src="media/awesome-rshiny-logo.svg" alt="Awesome">

A curated list of resources for R Shiny. (Featured on Awesome-R)

# Contents

- Resources
- General
- Community
- Deployment
- Tutorials
- Tools
- Packages
- Integrations
- People
- Books
- Galleries
- App Examples
- Contributors

## Resources

### General

- Official Website
  - Blog
  - Articles
  - Old Webinars Page
    - Shiny Essentials
    - Advanced Shiny
  - New Webinars Page
  - 2019/2020 Conference
  - Training
  - Consultants
  - Function References
- GitHub

### Community

- Shiny Server Forum
- Stack Overflow Questions
- R-bloggers
- Google Group
- RStudio Community
- rOpenSci
- R-Shiny on Reddit
- RGov - Government network for R/Shiny

### Deployment

#### Self Hosting

- Shiny Server - Back end software that builds a web server for shiny apps.
- RStudio Connect - Back end software for hosing shiny applications, Rmarkdown, plus other features for enterprise contexts.
- Shinyproxy - Uses containers for hosting shiny apps and a Java server control and proxy traffic to the app containers. How-to Blog.
- ShinyStudio - Builds on the Rocker project by including ShinyProxy to provide secured access to RStudio, VS Code, and Shiny.

#### Platform As A Service (PAAS)

- ShinyApps.io - Rstudio’s PAAS specifically for hosting shiny apps.
- Heroku - General cloud application platform that can be utilised by shiny apps with these buildpack scripts.

### Tutorials

- The R-Podcast
  - Episode 15: Introduction to Shiny
  - Episode 16: Interview with Dean Attali
  - Episode 17: A simply Radiant Chat with Vincent Nijs
  - Episode 18: Interviews with the R-Studio Team
  - Episode 19: Talking Shiny at R-Studio Conf wiht Barabara Borges and Dean Attali
  - Episode 21: Talking Rcpp and More with Dirk Eddelbuettel
  - Episode 25: Interview with Ian Lyttle (Rstudio::Conf 2018
  - Episode 27: Get The {Gt} Tables (Rstudio::Conf 2019)
- R-Studio (video)
  - RStartHere
  - Effective Reactive Programming – Part 1 & Part 2
  - Coordinated multiple views (linked brushing)
  - Building interactive tools for exploratory data analysis (gadgets)
  - Improvements in deploying apps
  - Modularizing Shiny app code
  - Shiny UI
  - Debugging Techniques
  - Profiling and Performance
  - Interfacing DataTables
  - Complex application layouts with Grid Style Sheets
  - Building Dashboards
- R-Studio (YouTube)
- R-Studio (Vimeo)
- DataCamp
  - Building Web Applications in R with Shiny
  - Dean Attali: Shiny Case Studies: My new online interactive video course (DataCamp)
- Dean Attali
  - CRANalerts: Get email alerts when a CRAN package gets updated
  - Blog Post: Building Shiny apps - an interactive tutorial
  - Blog Post: Shiny tips & tricks for improving your apps and solving common problems
  - Blog Post: How to get your very own RStudio Server and Shiny Server with DigitalOcean
  - Blog Post: Mimicking a Google Form with a shiny app
  - Blog post: Persistent data storage (and retrieval) in Shiny apps
  - Blog post: How to set-up shiny server on Ubuntu 14.04
  - Course: Stat545
  - Advanced-Shiny
- Joe Cheng
  - Async programming in R and Shiny
  - An informal intro to async Shiny
- Alyssa Columbus
  - Blog Post: Introduction to R Shiny
- Abhinav Agrawal (YouTube)
- AHmed HAsan (YouTube)
- Zev-Ross
- Cheat Sheet
- Delivering Data Science for the Enterprise with Shiny in Kubernetes
- Shiny Server on Docker: CentOS 7 Edition
- Use Docker to distribute and run Shiny apps
- Dockerizing a Shiny App
- Cookie based authentication with Shiny
- Speed Up Shiny Coding with Data

## Tools

### Packages

- R-Studio
  - shinydashboard - Shiny Dashboarding framework.
  - fontawesome - Easily insert FontAwesome icons into R Markdown docs and Shiny apps.
  - shinythemes - Bootstrap themes for use with Shiny.
    - miniUI - Provides UI widget and layout functions for writing Shiny apps that work well on small screens.
- dashboardthemes - An experimental R package to provide custom theme options for Shinydashboard applications.
- shinyAce - Integrate ace editor with shiny.
- shinyjs - Common JavaScript operations in shiny via R code.
- colourpicker - Colour picker widget that can be used in different contexts in R.
- ShinySky - Various UI widgets/components not part of Shiny e.g. alerts, styled buttons.
- radiant - Business analytics using R and Shiny.
- shinyTree - Enables Shiny application developers to use the jsTree library in their applications.
- shinystan - Provides visual and numerical summaries of model parameters and convergence diagnostics for MCMC simulations.
- shinyjqui - jQuery UI interactions and effects for shiny.
- bsplus - Shiny and R Markdown addons to Bootstrap 3.
- shinyFiles - Extends the functionality of shiny by providing an API for client side access to the server file system.
- shinyDND - Create Shiny drag and drop elements in R.
- shinyforms - Easily create questionnaire-type forms with Shiny.
- ECharts2Shiny - Insert interactive charts from ECharts into Shiny.
- shinyFeedback - Display user feedback along side Shiny inputs.
- shinycssloaders - Add CSS loader animations to Shiny outputs.
- directoryInput - Widget for interactive selection of directories.
- shinymaterial - Implements Google Material Design in Shiny Applications.
- shinysense - Series of Shiny modules to help Shiny sense the world around it.
- shinyWidgets - Extend input widgets available in Shiny.
- ggedit - A Shiny gadget for exploring ggplot objects.
- shinytest - Automated testing for shiny apps.
- timevis - Create interactive timeline visualizations in R.
- shinytoastr - Notifications in Shiny, via toastr.
- shiny.collections - Google Docs-like live collaboration in Shiny.
- RinteRface - A collection of HTML templates for Shiny.
- shiny.semantic - Semantic UI wrapper for Shiny.
- yonder - A reactive web framework built on shiny.
- shinycustomloader - Add a custom loader for R Shiny.
- shinybusy - Minimal busy indicator for Shiny apps.
- waiter - Loading screens for Shiny.
- shinyhelper - Add markdown help files to Shiny apps.
- shinyauthr - Server-side authentication using shiny modules.
- auth0 - Authentication in Shiny apps using Auth0 service.
- reactlog - Visual insight into a Shiny apps reactive graph.
- supreme - Structure Shiny applications developed with modules.
- shinymanager - Simple and secure authentication for single ‘Shiny’ applications using a SQLite database.
- polished - Authentication, user administration, and web hosting for secure Shiny apps & Rmarkdown documents (flexdashboards, HTML, & PDF).
- systemPipeShiny - Design/run biological or general data analysis workflows, and visualize downstream results.
- golem - Framework for building production-grade shiny applications.
- shinyTime - A timeInput widget for Shiny
- shinyalert - Easily create pretty popup messages (modals) in Shiny
- shinydisconnect - Show a nice message when a Shiny app disconnects or errors
- shinyscreenshot - Capture screenshots of entire pages or parts of pages in Shiny apps
- reactor - Unit testing for shiny reactivity

### Integrations

- HTML Widgets/JavaScript
  - Crosstalk - Extends htmlwidgets with functionality for implementing cross-widget interactions.
  - DT - Provides a function `datatable()` to display R data via the DataTables JavaScript library.
  - leaflet - JavaScript library for creating dynamic maps that support panning and zooming along with various annotations like markers, polygons, and popups.
  - leaflet.minicharts - Add and update small charts on an interactive leaflet maps.
  - d3heatmap - Implements a D3 heatmap htmlwidget.
  - dygraphs - R interface to the dygraphs JavaScript charting library. It provides rich facilites for charting time-series data in R.
  - DiagrammeR - Tool for creating diagrams and flowcharts using Graphviz and Mermaid.
  - MetricsGraphics - Enables easy creation of D3 scatterplots, line charts, and histograms.
  - networkD3 - Graph data visualization with D3.
  - rthreejs - 3D scatterplots and globes.
  - rbokeh - Interface to Bokeh that provides a flexible, powerful, declarative framework for creating interactive plots.
  - plotly - Easily translate your ggplot2 graphics to an interactive web-based version, and also provides bindings to the plotly.js graphing library.
  - formattable - This package is designed for applying formatting on vectors and data frames to make data presentation easier, richer, more flexible and hopefully convey more information.
  - manipulateWidget - Add More Interactivity to htmlWidgets.
  - gglabeller - Gadget that enables selecting points on a ggplot to label.
  - billboarder - Htmlwidget for billboard.js.
  - highcharter - Flexible JavaScript charting libraries in shiny.
  - rhandsontable - An htmlwidgets implementation of Handsontable.js.
  - flextable - Easily create customizable tables
  - echarts4r - Create interactive charts by leveraging Echarts.js library.
  - rintrojs - Wrapper for the Intro.js library.
  - slickR - Slick carousel htmlwidget for R.
  - rclipboard - Clipboard.js for R/Shiny Applications.
  - scatterD3 - Scatter plot htmlwidget based on D3.js.
  - trelliscopejs - TrelliscopeJS R package.
  - visNetwork - Network visualization for R using vis.js library.
  - sigmajs - Fully-fledged wrapper for the sigma.js JavaScript library.
  - excelR - An interface to jExcel.js library.
- flexdashboard - Easy interactive dashboards for R.
- Shiny in Rmarkdown - Run shiny apps in rmarkdown documents.
- ggvis - Make it easy to describe interactive web graphics in R.
- RInno - Install local shiny apps by providing an interface between R and Inno Setup, (Windows Only).
- googleVis - An interface between R and the Google’s charts tools.
- pool - Abstract away the logic of connection management and the performance cost of fetching a new connection from a remote database.

## People

- Dean Attali
- Joe Cheng
- Winston Chang
- Barbara Borges Ribeiro
- Ramnath Vaidyanathan
- Jeff Allen
- Vincent Nijs
- Sebastian Kranz
- David Granjon

## Books

- Web Application and Development Using Shiny (2nd edition) - by Chris Beely
- Learing Shiny - by Hernán G. Resnizky
- (WIP) Mastering Shiny - by Hadley Wickham
- Engineering Production-grade Shiny Apps - by Colin Fay, Sébastien Rochette, Vincent Guyader, Cervan Girard

## Galleries

- R-Studio
  - Shiny User Showcase - Featured user Shiny apps.
  - Shiny Gallery - Shiny apps and much more.
- Showmeshiny - Huge gallery of Shiny apps.
- Shiny Widgets - Experience statistics with apps designed for teaching and analysis.
- Html Widgets
  - Html Widgets Showcase - Featured Html widgets.
  - Html Widgets Gallery - User submitted Html widgets.
- R Graph Catalog - Complement to the book “Creating More Effective Graphs” by Naomi Robbins.
- Awesome Shiny Apps for Statistics - A curated list of awesome Shiny Apps for statistics.

## App Examples

- R-Studio Examples
- Waze - Community based real-time traffic and navigation info.
- Astra Zeneca - Data science tools used to create medicines more efficiently.
- shiny-salesman - Traveling salesman app.
- Shiny GEM - GEM stands for ‘general exploratory methods’, as this app aims to simplify a variety of basic EDA tasks.
- shinyEd - Statistics education apps.
- STARTapp - Transcriptome Analysis Resource Tool.
- shiny-phyloseq - Provides a graphical user interface to the microbiome analysis package for R, called phyloseq.
- shiny-ampvis2 - Provides some basic functionality for using ampvis2 to visualize microbiome data.
- Google Analytics Dashboard - Demo on how to build your own Google Analytics dashboard with R, Shiny and MySQL.
- BallR - Uses the NBA Stats API to visualize every shot taken by a player during an NBA season dating back to 1996.
- GenMap-Comparator - Compare genetic maps with D3 & Shiny.
- MAVIS - MAVIS: Meta Analysis via Shiny.
- iTunes Reviews Analysis - iTunes App Store Reviews Text Extractor and Text Analysis Web App.
- NYT Bar Optimizer - Optimize your liquor cabinet using cocktail recipes from New York Times Cooking.
- Lights Out game - Lights Out is a puzzle game consisting of a grid of lights that are either on or off.
- Australian Tax Office:
  - Workforce Demographics - View a range of workforce related demographics information across an organisation. Source Code.
  - Bivariate Demographics - Examine how an organisation is performing on a range of demographic information. Source Code.
- Shiny Database App (CRUD) - An example of a CRUD shiny app with accompanying how-to post.
- taskviewr - Browse R packages by CRAN Task Views and license info.
- homebrewR - Explore and compare beer recipes.
- vinylSpotting - Visualize and explore Discogs record collections.
- polMonitor - Monitor police violence in the United States.
- OCRinShiny - OCR an image with the tesseract package.
- ExpressionDB - Host gene expression/ontology data with Shiny.
- Interactive PCA Explorer - Explore a PCA plots and data.
- contributr - Find beginner GitHub issues to contribute to.
- VisualPruner - Cohort selection in observational studies.
- Opioid Overdose Shiny App - Visualize opioid overdose data.
- Shiny App Spotify - Connect with spotify’s API and generate personalized playlist recommendations through machine learning and data visualization.
- National Parks Weather - Visualize National Parks locations and weather using user input.
- html2r - Convert HTML to R.
- Anomaly Detection - Detect anomalies on univariate timeseries data using AnomalyDetection package.
- R Shiny User Management & Authentication - Demonstration of user management and authentication system in R Shiny.

## Contributors

- Rob Gilmore
- Shaurita Hutchins
- Devin Pastoor
- Dean Attali
- Luke Singham
- Abdul Majed Raja
- Leonardo Trimarchi
- Kshitiz Khanal
- Alyssa Columbus
- Patrick Howard
- Le Zhang

rshiny.md Github