Skip to content
Awesome R packages that offer extended UI or server components for the R web framework Shiny
Branch: master
Clone or download
Latest commit fe92201 Apr 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore first commit Dec 3, 2018 add code of conduct Dec 3, 2018 add contributing guide Dec 3, 2018
LICENSE add license Dec 3, 2018 add logo Apr 8, 2019
awesome-shiny-extensions.Rproj first commit Dec 3, 2018

awesome-shiny-extensions logo

Awesome Shiny Extensions


A curated list of awesome R packages that offer extended UI or server components for the R web framework Shiny.


An awesome Shiny app often looks different from the default Bootstrap theme.

Generic Theming

Dashboard Theming

Mobile Theming

  • miniUI - Widgets and layouts for Shiny apps working on small screens. Designed for creating Shiny Gadgets.
  • shinyF7 - Theming Shiny apps with Framework7, a full featured HTML framework for building iOS & Android apps.

UI Components

Frontend UI components for special input/output types.


  • ShinyWidgets - Bootstrap 3 custom widgets for Shiny (switches, checkboxes, sweet alerts, slider text, knob inputs, select pickers, search bar, dropdown buttons).
  • bsplus - Bootstrap 3 addons for Shiny and R Markdown (collapsible elements, accordion panels, accordion-sidebar sets, tooltips, popovers, modals, carousels).
  • shinyBS - Bootstrap 3 components for Shiny (alerts, tooltips, popovers, modals, collapsible panels, button upgrades).
  • slickR - Carousels for Shiny apps using slick.js.
  • shinyLP - Bootstrap 3 landing pages for Shiny apps.

File Input

  • shinyFiles - A server-side file system viewer for Shiny.
  • directoryInput - Shiny input widget for selecting directories.

Special Input

  • shinyTime - A timeInput widget for Shiny.
  • shinyCleave - Customized text inputs (phone number, ZIP code, currency, credit card) based on Cleave.js.
  • regexSelect - Enable regular expression searches within a Shiny selectize object.
  • ShinyRatingInput - Star rating inputs for Shiny based on bootstrap-rating.


Feedback / Alert / Notification

  • shinyFeedback - Display user feedback next to Shiny inputs.
  • shinyalert - Create pretty popup messages (modals) in Shiny apps.
  • shinytoastr - Notifications for Shiny apps, via toastr.

Walkthrough / Tooltip / Help

  • rintrojs - Wrapper for Intro.js to create step-by-step introductions and clickable hints.
  • tippy - Wrapper for Tippy.js to add tooltips to R Markdown documents or Shiny apps.
  • shinyhelper - Add Markdown help files to Shiny app elements.


  • rclipboard - Wrapper for clipboard.js to create copy-to-clipboard buttons for Shiny apps.

Color Picker


  • shinyAce - Ace code editor bindings for Shiny.
  • shinyMCE - TinyMCE WYSIWYG editor bindings for Shiny.


  • DT - R interface to the DataTables library.
  • rhandsontable - Create Excel-like editable tables in Shiny apps.
  • formattable - Table elements formatting and styling for R Markdown documents and Shiny apps.
  • gt - Generate information-rich, publication-quality tables.


  • pushbar - pushbar.js for Shiny. Create off-canvas sliding drawers for inputs, outputs, or any other content.

Drag and Drop

  • shinyDND - Create drag and drop elements in Shiny.

Image / Audio / Video

  • shinysense - A series of shiny modules to help Shiny sense the world around it (draw, swipe cards, record images from a webcam, record audio, capture accelerometer data).
  • pixels - htmlwidget and Shiny Gadget to render and draw pixels.
  • vembedr - Embed videos in R Markdown documents and Shiny apps.


  • rpdf - Mozilla pdf.js htmlwidget for R.

Icon Font

  • fontawesome - Insert FontAwesome icons into R Markdown documents and Shiny apps.

Code Diff

  • diffr - Create code diff widgets based on codediff.js.
  • diffRgit - Create an HTML git diff widget using the diff2html library.

Animation Effects

  • typed - R htmlwidget for animated typing effect with typed.js.
  • countup - R htmlwidget that animates a numerical value by counting to it with CountUp.js.
  • textillate - CSS3 text animations with textillate.js.


  • shiny.i18n - Easy internationalization of Shiny apps.


  • reactR - Use React in R with htmlwidget constructor templates and local JavaScript dependencies.
  • shinyReactWidgets - React widgets for Shiny apps.


  • vueR - Use Vue.js in R with htmlwidget constructor templates and local JavaScript dependencies.

Advanced Interactivity

  • htmlwidgets - A framework for creating R bindings to JavaScript libraries.
  • crosstalk - Inter-widget interactivity (for example, linked brushing and filtering) for htmlwidgets.
  • shinyjs - Perform common JavaScript operations in Shiny apps.
  • shinyjqui - Add jQuery UI interactions and effects (e.g. draggable, resizable, sortable elements) to Shiny apps.
  • shiny.collections - Google Docs-like live collaboration in Shiny with RethinkDB.


Frontend components for interactive visualization of specific data types.


  • plotly - Interactive web graphics via plotly.js. Has special support for linking/highlighting/filtering views.
  • highcharter - R wrapper for the highcharts JavaScript charting library.
  • rbokeh - R interface for Bokeh.
  • echarts4r - Interactive graphs with Echarts v4.
  • r2d3 - R interface to D3 visualizations.
  • vegalite - R ggplot2 bindings for Vega-Lite.


  • scatterD3 - R scatterplot htmlwidget based on D3.js.
  • pairsD3 - D3 scatterplot matrices.
  • rthreejs - Interactive 3D scatterplots, networks, and globes based on three.js.

Time Series

  • dygraphs - R interface to the dygraphs JavaScript charting library.
  • metricsgraphics - An htmlwidget interface to the MetricsGraphics.js D3-based charting library.
  • timevis - Interactive timeline visualizations based on vis.js.

Tree and Hierarchical Data

  • D3partitionR - D3-based interactive visualization of nested and hierarchical data (sunburst, treemap, circle treemap, icicle, and partition chart) for Shiny.
  • d3Tree - D3-based collapsible trees for Shiny.
  • collapsibleTree - D3-based interactive collapsible tree diagrams.
  • shinyTree - jsTree bindings for creating interactive trees in Shiny.
  • listviewer - View and modify lists interactively, based on jsoneditor and react-json-view.
  • trelliscopejs - Create interactive Trelliscope displays based on trelliscopejs-lib.

Network and Graph Data

  • networkD3 - Create D3 network, tree, dendrogram, and Sankey diagram from R.
  • visNetwork - Network visualization using vis.js.
  • sigmajs - Interface to the sigma.js graph visualization library, including animations, plugins, and Shiny widgets.
  • sigmaNet - Render igraph networks using sigma.js.
  • chorddiag - R interface to D3 interactive chord diagrams.
  • edgebundleR - Circular layout plots with bundled edges based on D3.
  • DiagrammeR - Graph and network visualization based on viz.js.
  • hiveD3 - D3-based hive plots. Tutorial for recreating the package.


  • d3heatmap - D3-based interactive heatmaps (highlight rows/columns, zoom in/out, clustering, dendrograms).
  • heatmaply - Interactive heatmaps using plotly.
  • rChartsCalmap - An htmlwidgets binding for calendar heatmaps using D3.
  • calheatmapR - R interface for the cal-heatmap JavaScript charting library to create calendar heatmaps.

Maps and Spatial Data

  • leaflet - R interface to the Leaflet JavaScript library to create interactive maps.
  • leaflet.extras - Extra functionality for the leaflet package.
  • leaflet.minicharts - Add and modify small charts on the interactive map created with the leaflet package.
  • leaflet.esri - ESRI bindings for the leaflet package.
  • leaflet.opacity - Opacity controls for Leaflet maps.
  • leafletCN - China and geojson choropleth maps for Leaflet.
  • mapdeck - Interactive maps using Mapbox GL and
  • h3r - Uber's H3 geographical indexing library bindings for R.
  • googleway - Access Google Maps API to retrieve data and draw maps.
  • mapview - Interactive viewing of spatial data.
  • mapedit - Interactive editing of spatial data.
  • tmap - Create thematic maps, such as choropleths and bubble maps.


Word Cloud

  • wordcloud2 - Word cloud visualization based on wordcloud2.js.

Biological Data

  • msaR - BioJS-based MSA (multiple sequence alignment) viewer.
  • mutsneedle - Interactive mutation lollipop diagrams.
  • g3viz - D3-based interactive lollipop plots.
  • BioCircos.R - Interactive circular visualization of genomic data using htmlwidgets and BioCircos.js.
  • chromoMap - Interactive visualization and mapping of human chromosomes.
  • flowDashboard - Shiny Modules for visualizing flow cytometry data.
  • qtlcharts - Interactive graphics for QTL experiments.
  • phylocanvas - Interactive phylogenetic trees using the Phylocanvas JavaScript library.
  • phylowidget - Interactive phylogenetic trees based on phylotree.js.


  • rgl - Render WebGL scenes created with the rgl package (vignette).

Augmented and Virtual Reality

  • shinyaframe - WebVR data visualizations with Shiny and Mozilla A-Frame.
  • arframer - Augmented Reality in R based on AR.js.


Backend components and service integrations for Shiny apps.


  • - Packages and tutorials for connecting R and Shiny apps to databases.
  • pool - Database connection pooling in R.
  • elastic - R client for the Elasticsearch HTTP API.
  • sergeant - Transform and query data with Apache Drill.

URL Routing

  • shiny.router - Minimalistic URL router for Shiny apps.
  • shinyURL - Save and restore the state of a Shiny app by encoding the values of user inputs and active tab panels in the app's URL query string.


  • googleAuthR - Shiny compatible Google API client for authentication with OAuth2.
  • auth0 - Authentication in Shiny apps using Auth0.
  • shinyauthr - Server-side authentication using shiny modules.

Job Scheduling

  • cronR - R package for managing cron jobs.

Web APIs Integration

  • geoloc - Use the Geolocation API to get the location of the user (with user's permission).
  • shinyStore - Use the Web Storage API to store persistent, synchronized data in the user's browser.

Notification Integration

  • slackr - Send messages, images, R objects, and files to Slack channels/users.
  • sendgridr - Send emails with SendGrid mail API (v3).
  • twilio - R interface to the Twilio API.
  • blastula - Easily send HTML email messages from R.
  • mjml - Create responsive emails with R and MJML.

Cloud Integration

  • cloudyr - R packages for integrating with AWS, Azure, and Google Cloud.

G Suite Integration

  • googlesheets4 - R interface to Google Sheets via the Sheets API v4.
  • googlesheets - R interface to Google Spreadsheets API (no longer under active development).
  • googledrive - R API client for Google Drive.
  • gmailr - Access the Gmail RESTful API from R.


Deploy Shiny apps to the cloud, hosted infrastructure, or desktop.

Cloud Deploy

  • rsconnect - Deploy Shiny apps to, or RStudio Connect.

Desktop Deploy

  • RInno - Deploy Shiny apps to Windows by interfacing Inno Setup and Electron.
  • Shiny Meets Electron - Talk at useR! 2018 on turning Shiny app into standalone desktop apps. Talk video.
  • nativefier - Create Electron wrappers for any websites (including remotely deployed Shiny apps).

Developer Tools

Debug, test, and optimize Shiny apps.


  • shinyreactlog - Visual debugger for Shiny reactivity.
  • reactlog - Easier debugging with the Shiny reactive log.





Not necessarily an R package, but it helps.

UI Customization

Dependency Resolution

  • packrat - Parse R package dependencies of Shiny apps with packrat::appDependencies.
  • sysreqsdb - SystemRequirements mappings for R packages.
  • shinyapps-package-dependencies - A collection of bash scripts that install system dependencies for R packages.
You can’t perform that action at this time.