awesome-shiny-extensions logo

Awesome Shiny Extensions

Awesome

A curated list of awesome R and Python packages offering extended UI or server components to the web framework Shiny.

Your contribution is welcomed. Please create a pull request or issue to add packages to the list.



Contents

Theming

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

Generic Theming

  • shinythemes - Bootswatch themes (Bootstrap 3) for Shiny.
  • shiny.semantic - Fomantic UI (formerly Semantic UI) for Shiny.
  • shiny.fluent - Fluent UI for Shiny apps.
  • shiny.blueprint - Palantir's Blueprint for Shiny apps.
  • shinymaterial - Material Design for Shiny with Materialize.css.
  • shinyUIkit - UIkit API for Shiny.
  • fullPage - Single page styles for Shiny apps.
  • shinybulma - Bulma.io for Shiny.
  • shinyChakraUI - Chakra UI for Shiny.
  • shinyMetroUi - Metro 4 UI for Shiny.
  • shinyNextUI - NextUI for Shiny.
  • gridlayout - Build dashboard-style layouts for Shiny and R Markdown using CSS Grid.
  • flexlayout - A responsive three-column layout for Shiny. Creates up-to three-column layout where the left and right columns collapse into offcanvas elements on tablets and mobile devices.

Dashboard Theming

Mobile Theming

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

Theme Customization

  • bslib - Tools for theming Shiny and R Markdown from R via Bootstrap (3 or 4) Sass.
  • fresh - Create fresh themes for use in shiny & shinydashboard applications and flexdashboard documents.
  • Rnightly - An R wrapper of the JavaScript library Nightly.
  • linne - Write CSS in R.
  • designer - Shiny UI prototype builder allowing drag and drop UI components before saving the equivalent R code.

UI Components

Frontend UI components for special input/output types.

Bootstrap

  • bsplus - Bootstrap 3 addons for Shiny and R Markdown (collapsible elements, accordion panels, accordion-sidebar sets, tooltips, popovers, modals, carousels).
  • bsutils - UI utilities for Bootstrap 5 and Shiny.
  • litter - Lit components for Shiny.
  • ShinyWidgets - Bootstrap 3 custom widgets for Shiny (switches, checkboxes, sweet alerts, slider text, knob inputs, select pickers, search bar, dropdown buttons).
  • shinyBS - Bootstrap 3 components for Shiny (alerts, tooltips, popovers, modals, collapsible panels, button upgrades).
  • shinyLP - Bootstrap 3 landing pages for Shiny apps.
  • shinypanels - Shiny layout with collapsible panels.
  • slickR - Carousels for Shiny apps using slick.js.
  • spsComps - Additional Bootstrap 3 custom UI components (gallery, panels, buttons, animation and more) and additional Shiny server components (exception catch, validation, etc.).

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.
  • shinyDatetimePickers - Datetime pickers for Shiny.
  • DateTimeRangePicker - A datetime range picker widget for Shiny.
  • shinyMatrix - Matrix input for Shiny.
  • shinyCleave - Customized text inputs (phone number, ZIP code, currency, credit card) based on Cleave.js.
  • shinySelect - A wrapper of the react-select library that supports grouped, sortable items with Font Awesome icons, KaTeX formulas, and Bootstrap tooltips.
  • regexSelect - Enable regular expression searches within a Shiny selectize object.
  • cascadeSelect - Cascade select widget for Shiny, useful for selection of hierarchical choices.
  • reactCheckbox - Checkbox group input for Shiny, with a head checkbox allowing to check or uncheck all the checkboxes in the group.
  • ShinyRatingInput - Star rating inputs for Shiny based on bootstrap-rating.
  • algo - Implements the Algolia Places address search auto completion menu on shiny text inputs.
  • shinyChakraSlider - Combined slider and number input for Shiny.
  • histoslider - A histogram slider input binding for Shiny. Supports creating histograms from numeric, date, and date-time vectors.
  • shinynlq - Natural language queries (NLQs) for Shiny as a bslib custom component.
  • shinyMultiActionButton - A multi-action button for Shiny.
  • NestedMenu - Multi-level dropdown menu selection input.
  • codeModules - Shiny modules to import/manipulate/export tabular data, download plots/tables/widgets, and output code with syntax highlighting using highlight.js.
  • shiny-highlight-rmarkdown - R code and R Markdown code output syntax highlighting using highlight.js.

Loader

  • shinycssloaders - CSS loader animations for Shiny outputs.
  • shinycustomloader - Custom css/html or gif/image loaders for Shiny outputs.
  • shinybusy - Minimal busy indicator for Shiny apps.
  • shiny.emptystate - Empty state components for Shiny.
  • shinydisconnect - Show a nice message when a Shiny app disconnects or errors.
  • waiter - Splash loading screens for Shiny.
  • sever - Customize Shiny's disconnected screen.
  • shiny-fcp-loader - Shiny app template with a loading screen that aims to minimize the time to First Contentful Paint (FCP).
  • shiny-loading-skeleton - Shiny app template with an animated, fully customizable skeleton loader.

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.
  • shinyToastify - A wrapper of the React-Toastify library for Shiny.
  • shinypop - Collection of notifications, confirm dialogs, and alerts for Shiny apps based on noty, notie, push.js, and notiflix.
  • shinyvalidate - Add input validation capabilities to Shiny.
  • awn - Awesome Notifications for Shiny.

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.
  • cicerone - Create guided tours for Shiny apps using driver.js.
  • shinyhelper - Add Markdown help files to Shiny app elements.
  • scrollrevealR - Animate shiny elements when they scroll into view using the scrollrevealjs library.
  • faq - Accordion-based FAQ component with expand/collapse control.
  • flashCard - HTML widget for creating flippable flash cards.
  • prompter - Add tooltips in Shiny apps with 'hint.css'.

Clipboard

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

Color Picker

  • colourpicker - A colour picker tool for Shiny.
  • gradientPickerD3 - Interactive color gradient picker based on jquery-gradient-picker.
  • gradientInput - Another approach at gradient colour picker, implemented using the colourpicker package.

Editor

  • aceEditor - Ace editor as an HTML widget based on react-ace.
  • shinyAce - Ace code editor bindings for Shiny.
  • shinyMonacoEditor - The Monaco Editor in Shiny.
  • shinyMCE - TinyMCE WYSIWYG editor bindings for Shiny.
  • sqlquery - HTML widget for writing SQL queries with autocompletion for SQL keywords and table/field names.

Chat

  • chattr - Interact with large language models (LLMs) in RStudio through the R console or Shiny gadget.
  • gptstudio - Incorporate use of large language models (LLMs) into project workflows, with Shiny bindings for streamingMessage components.
  • shinyChatR - Reusable chat module for Shiny apps. Allows sending messages and view messages from other users. Messages can be stored in a database or a .rds file.

Table

  • DT - R interface to the DataTables library.
  • reactable - Interactive data tables for R, based on the React Table library and made with reactR.
  • reactable.extras - Enhanced functionality for reactable in Shiny applications, with interactive and dynamic data table capabilities.
  • reactablefmtr - Simplify the styling, formatting, and customization of tables made with reactable.
  • kableExtra - Construct complex table with knitr::kable() and pipes.
  • formattable - Table elements formatting and styling for R Markdown documents and Shiny apps.
  • flextable - Create tables for reporting with format and layout control.
  • gt - Generate information-rich, publication-quality tables.
  • rhandsontable - Create Excel-like editable tables in Shiny apps.
  • DTedit - Editable DataTables for Shiny apps.
  • dteditmod - A fork of DTedit with a modular implementation and more documentation.
  • texPreview - Preview and save images of rendered snippets of LaTeX in RStudio viewer, R Markdown and Shiny.
  • basictabler - Construct rich tables for output to HTML/Excel.
  • pivottabler - Create pivot tables in R.
  • pivta - R wrapper for WebDataRocks, an interactive pivot table component for data analysis.
  • excelR - R interface to the jExcel.js library.
  • xSpreadsheet - R wrapper for the JavaScript canvas spreadsheet library x-spreadsheet.

Drawers

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

Drag and Drop

  • shinyDND - Create drag and drop elements in Shiny.
  • sortable - HTML widget for SortableJS that enables drag-and-drop behavior and reorderable elements.
  • dragulaR - R interface for the dragula JavaScript library for moving around elements in Shiny apps.
  • dndselectr - Drag-and-drop Shiny select input.
  • esquisse - Drag and drop inputs and visual builder for ggplot2.

Text

  • marker - Highlight text in Shiny with markjs.

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 - HTML widget and Shiny Gadget to render and draw pixels.
  • fabricerin - Create HTML5 canvas in Shiny and R Markdown documents based on Fabric.js.
  • heyshiny - Speech to text input.
  • vembedr - Embed videos in R Markdown documents and Shiny apps.
  • webcamR - HTML widget wrapper around the react-webcam library.
  • drawer - A front-end only image editor for both Shiny and R Markdown.
  • shinyscreenshot - Capture screenshots of entire pages or parts of pages in Shiny apps.

PDF

  • rpdf - Mozilla pdf.js htmlwidget for R.

Icon Font

  • fontawesome - Insert FontAwesome icons into R Markdown documents and Shiny apps.
  • icongram - Interface to Icongram, easily fetch svg icons with a single function.

Image Comparison

  • vdiffr - Visual regression testing and graphical diffing, with toggle, slide, and diff widgets for comparing two images.

Code Diff

  • diffviewer - HTML widget to visually compare files (text, images, and data frames).
  • diffr - Create code diff widgets based on codediff.js.
  • diffRgit - Create an HTML git diff widget using the diff2html library.
  • jsondiff - R interface to jsondiffpatch for comparing R objects as JSONs.

Calendar

  • tuicalendr - HTML widget to create interactive calendars with JavaScript library tui-calendar.

Notebooks

Animation Effects

  • typedjs - 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.
  • shinyglide - Create carousel-like or assistant-like (wizard) UI components with Glide.js.
  • d3rain - HTML widget bringing D3 drip to R.
  • hover - Add animations to Shiny button elements using Hover.css.
  • bubblyr - Add animated bubbles to Shiny and R Markdown backgrounds.
  • shinyEffects - Customize shiny apps with CSS effects (Zoom / Pulse / Shadow / Shake).

i18n

  • shiny.i18n - Easy internationalization of Shiny apps.
  • shi18ny - Tools for shiny apps internationalization.

React

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

Vue.js

  • vuer - Use Vue components and build Vue apps in R.
  • 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.
  • shinyCanvas - Create and customize an interactive canvas using the D3 JavaScript library and the htmlwidgets package.
  • shinymeta - Record and expose Shiny app logic using metaprogramming.
  • shinyscroll - Scroll to an element in Shiny.
  • pagemapR - Create a mini map for Shiny apps and R Markdown documents.
  • keys - Assign and listen to keyboard shortcuts in Shiny using the Mousetrap JavaScript library.
  • js4shiny - Companion package for 'JavaScript for Shiny Users' workshop, with components to enable using R Markdown for literate programming with JavaScript.
  • flexfilter - Create a filter from a data frame that enables users to dynamically add filters on each column. The filter dynamically generates the appropriate input for the selected column based on its type.

Visualization

Frontend components for interactive visualization of specific data types.

General-Purpose

  • 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.
  • g2r - Grammar of graphics for interactive visualization using G2.js.
  • litecharts4r - A lite wrapper around echarts.js and echarts4r.
  • r2d3 - R interface to D3 visualizations.
  • vegalite - R ggplot2 bindings for Vega-Lite.
  • vegawidget - HTML widget renderer for Vega and Vega-Lite.
  • sketch - Creates static / animated / interactive visualizations embeddable in R Markdown documents and Shiny. Implements an R-to-JavaScript transpiler and enables users to write JavaScript applications using the syntax of R.
  • d3po - Fast and beautiful interactive visualization for R Markdown and Shiny. Acts as intermediate layer between Shiny and D3 by providing templates.
  • ggiraph - HTML widget that makes ggplot2 graphics interactive. Select graphical elements, add tooltips, animations, and JavaScript actions to the graphics.
  • rfrappe - HTML widget for the Frappe Charts JavaScript library.
  • tuichartr - HTML widget for tui-chart.
  • billboarder - HTML widget for billboard.js.
  • apexcharter - HTML widget for ApexCharts.js.
  • taucharts - HTML widget for Taucharts.
  • googleVis - R interface to Google Charts.
  • rroughviz - R warpper for roughViz.js, a JavaScript library for creating sketchy/hand-drawn styled charts.
  • rAmCharts4 - R interface to amCharts 4.

Scatterplot

  • scatterD3 - R scatterplot htmlwidget based on D3.js.
  • pairsD3 - D3 scatterplot matrices.
  • rthreejs - Interactive 3D scatterplots, networks, and globes based on three.js.
  • graph3d - R wrapper of the JavaScript library vis-graph3d.
  • hpackedbubble - Split packed bubble charts with highcharts.

Parallel Coordinates

  • parcoords - HTML widget for D3 parallel coordinates chart.

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.
  • timelineschart - R interface to timelines-chart.
  • streamgraph - HTML widget for creating streamgraph visualizations in R.
  • eventdropR - HTML widget for EventDrops, time based and event series interactive visualization using D3.

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.
  • jsTree - R htmlwidget for inspecting heirachal structures with the jQuery jsTree plugin.
  • shinyTree - jsTree bindings for creating interactive trees in Shiny.
  • jsTreeR - A wrapper of the JavaScript library jsTree.
  • shinyCheckboxTree - Checkbox tree widget for Shiny. Wrapper of the JavaScript library react-checkbox-tree.
  • listviewer - View and modify lists interactively, based on jsoneditor and react-json-view.
  • trelliscopejs - Create interactive Trelliscope displays based on trelliscopejs-lib.
  • Rmarkmap - Create interactive mind maps with the markmap JavaScript library.

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.
  • chordViz - Create interactive chord diagrams in R.
  • edgebundleR - Circular layout plots with bundled edges based on D3.
  • hiveD3 - D3-based hive plots. Tutorial for recreating the package.
  • grapher - An R integration of ngraph to create 3D and 2D interactive graphs.
  • shinyCyJS - Cytoscape.js R binding for Shiny.
  • cyjShiny - R/Shiny widget for Cytoscape.js.

Categorical Data

  • bar - Interactive one-dimensional proportions chart for representing categorical data.

Diagrams

  • DiagrammeR - Diagram, graph, and network visualization based on D3.js, viz.js, and mermaid.js.
  • nomnoml - R interface to nomnoml, a tool for drawing sassy UML diagrams based on syntax with customizable styling.
  • bpmn - R interface to the bpmn-js library.

Heatmap

  • 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.
  • nivocal - HTML widget for drawing calendar heatmaps based on nivo.
  • supercaliheatmapwidget - Supercalifragilistic HTML 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.extras2 - More plugins for the leaflet package.
  • leafgl - Performant WebGL rendering for leaflet.
  • leaflet.minicharts - Add and modify small charts on the interactive map created with the leaflet package.
  • leaflet.opacity - Opacity controls for Leaflet maps.
  • leaftime - Leaflet-timeline plugin for Leaflet to show changing geospatial data over time.
  • leafletCN - China and geojson choropleth maps for Leaflet.
  • leafletGeocoderRshiny - Leaflet + Pelias geocoding for Shiny.
  • leafdown - Provides drilldown functionality for leaflet choropleths.
  • mapdeck - Interactive maps using Mapbox GL and Deck.gl.
  • deckgl - R Interface to Deck.gl.
  • r2deck - R interface to Deck.gl and Mapbox GL visualizations.
  • 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.
  • datamaps - Create interactive choropleth maps with the JavaScript library Datamaps, add arcs and bubbles, change choropleth values, and change labels.
  • topogram - Cartogram htmlwidget for visualizing geographical data by distorting a TopoJSON topology using cartogram-chart.
  • rsquaire - R interface for squaire.js, a JavaScript library for making responsive equal-area square maps using D3.
  • hchinamap - Mapping China and its provinces with highcharts.
  • planetary - HTML widget for the planetary.js library for creating interactive globes.
  • gior - HTML widget for gio.js for declarative 3D globe data visualization.
  • quickglobe - View country data via a 3D D3 globe.

Sparkline

  • sparkline - jQuery Sparkline (tiny inline charts) HTML Widget for R. Use sparklines in DT.
  • reactrend - Simple, elegant spark lines and trend graphs based on react-trend.
  • trendchart - Small, simple trendchart for R.
  • peity - Peity htmlwidget for R.
  • dataui - Interactive visualizations of data-ui based on vx.

Word Cloud

  • wordcloud2 - Word cloud visualization based on wordcloud2.js.
  • hwordcloud - Render word clouds with highcharts.
  • d3wordcloud - HTML widget for D3.js word cloud layout.

Biological Data

  • igvR - R package providing interactive connections to igv.js running in a web browser.
  • igvShiny - HTML widget for igv.js, a JavaScript library for embeddable genomic visualization.
  • nglShiny - NGL Viewer as an htmlwidget for molecular visualization.
  • shiny.molstar - Shiny wrapper for Mol*, a visualization toolkit of large scale molecular data.
  • msaR - BioJS-based MSA (multiple sequence alignment) viewer.
  • shiny.gosling - Shiny wrapper for Gosling.js, grammar-based toolkit for scalable and interactive genomics data visualization.
  • TnT - Track-based visulizations based on the TnT JavaScript libraries. Useful for displaying genomic features as a simple genome browser.
  • 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.
  • ideogRam - HTML widget for chromosome visualization with ideogram.js.
  • 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.
  • JBrowseR - R interface to the JBrowse 2 linear genome view.
  • safetyCharts - Charts for monitoring clinical trial safety.

Chemical Data

  • r3dmol - Visualizing molecular data in 3D, based on 3Dmol.js.
  • chemdoodle - HTML widget for visualizing and drawing molecules.

WebGL

  • rgl - Render WebGL scenes created with the rgl package (vignette).
  • rayshader - Create and visualize hillshaded maps from elevation matrices.
  • rayrender - Build and raytrace 3D scenes.
  • rayimage - Render depth of field for images.

Augmented and Virtual Reality

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

Frameworks

Shiny app scaffolding and development frameworks built for various purposes.

Foundational frameworks

  • Rhino - Build high quality, enterprise-grade Shiny apps at speed.
  • golem - Opinionated framework for building production-grade Shiny apps.
  • teal - Interactive exploration framework for analyzing clinical trials data, provides a dynamic filtering facility and different data viewers.
  • yonder - A reactive web framework built on Shiny with Bootstrap 4.

Scaffolding

  • leprechaun - Code generator for lean and robust Shiny applications.
  • windy - Sets up basic scaffold to use Tailwind CSS within an R package for a Shiny application.

Framework extensions

Backend

Backend components and service integrations for Shiny apps.

Database

Persistent Data Storage

  • pins - Publish data sets, models, and other R objects to folders, Posit Connect, Amazon S3, and more.

API Frameworks

  • RestRserve - R web API framework for building high-performance and robust microservices and app backends.
  • plumber - Create web APIs by decorating R code with special comments.
  • valve - Create multi-threaded Plumber APIs powered by Rust's tokio and axum web frameworks.
  • opencpu - A system for embedded scientific computing and reproducible research with R.
  • communicate - Small framework to communicate between Shiny client and server via HTTP requests.

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.
  • brochure - Create natively multi-page Shiny applications to serve content from multiple endpoints. See blog post on POST requests support.
  • scenes - Switch between alternative UIs based on request properties, such as cookies, paths, query parameters, or HTTP request method.
  • Accepting POST requests from Shiny - Undocumented feature for handling POST requests that are not associated with any specific Shiny session.

Authentication

  • shinymanager - Simple and secure authentification mechanism for single Shiny apps.
  • gargle - Infrastructure for calling Google APIs from R, including auth.
  • googleAuthR - Shiny compatible Google API client for authentication with OAuth2.
  • auth0 - Authentication in Shiny apps using Auth0.
  • shinyauthr - Server-side authentication using shiny modules.
  • firebase - Authenticate Shiny users with Google Firebase.
  • otp - One-Time Password generation and verification.
  • backendlessr - R wrapper for Backendless API to manage users.

Job Scheduling

  • cronR - R package for managing cron jobs.

Web APIs Integration

  • glouton - Handle browser cookies in shiny, built on top of js-cookie.
  • cookies - Another js-cookie package, with added functionality to handle HttpOnly cookies.
  • 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.
  • shinyStorePlus - In-browser storage for Shiny persistent, synchronized data from the inputs using IndexedDB.

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.
  • mailtoR - Creates a friendly user interface for emails sending in Shiny.

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

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

Remote Deploy

  • rsconnect - Deploy Shiny apps to shinyapps.io, or Posit Connect.
  • connectwidgets - Query a Posit Connect server for a subset of content items, then organize them within htmlwidget components in R Markdown documents or Shiny applications.

Desktop Deploy

  • RInno - Deploy Shiny apps to Windows by interfacing Inno Setup and Electron.
  • electricShine - Create distributable Shiny Electron apps.
  • photon - RStudio Add-in to build Shiny apps utilizing the Electron framework.
  • DesktopDeployR - A framework for deploying self-contained R-based applications to the desktop.
  • Shiny Meets Electron - Talk at useR! 2018 on turning Shiny app into standalone desktop apps. Talk video.
  • r-shiny-electron - Template for R Shiny and Electron integration.
  • nativefier - Create Electron wrappers for any websites (including remotely deployed Shiny apps).

Static Server Deploy

  • r-shinylive - Run Shiny apps entirely in the browser using WebAssembly via webR.
  • webR - A version of R compiled for the browser and Node.js using WebAssembly via Emscripten.

Developer Tools

Debug, test, and optimize Shiny apps.

Prototyping

  • shinyuieditor - A GUI for laying out a Shiny application that generates clean and human-readable UI code.
  • shinipsum - Lorem-Ipsum-like helpers for fast Shiny prototyping.
  • fakir - Create fake data in R for tutorials.
  • shinysnippets - A series of Shiny related RStudio snippets.

Modularization

  • tidymodules - An object-oriented approach to Shiny modules.
  • supreme - Structure Shiny applications developed with modules.
  • packer - An opinionated framework for using JavaScript with R.
  • box - Organize code into hierarchical, composable, reusable modules, to use across projects.
  • many - Use multiple directories to build R packages.
  • component - Create components for Shiny, inspired by Vue.js.

Debugging

  • reactlog - Visual debugger for Shiny reactivity.

Testing

Profiling

  • profvis - Interactive visualizations for profiling R code. Profiling Shiny apps.
  • shiny.benchmark - Measure and compare the performance of different versions of a Shiny application.
  • shiny.info - Displays simple diagnostic information of the Shiny project in the user interface of the app.
  • shiny.tictoc - Measure Shiny app performance in the browser.

Scaling

Monitoring and Analytics

  • shiny.telemetry - Track events occurring on a user session and stores them in a local or remote database.
  • shinymetrics - Track shiny applications with Shinymetrics, providing analytics and telemetry for Shiny applications.
  • titan - Prometheus monitoring for Shiny applications, plumber APIs, and other R web services.
  • openmetrics - An opinionated Prometheus client for R conforming to the OpenMetrics standard.
  • pRometheus - Prometheus client library for R, Plumber, and Shiny.

Miscellaneous

Not necessarily an R package, but it helps.

UI Customization

Dependency Resolution

  • renv - Create isolated, portable, and reproducible environments for R projects.
  • 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.

Editor Extensions

  • shiny-vscode - VS Code extension to run Shiny apps (in R and Python) and create or save Shinylive links.
  • ShinyUiEditor - A visual tool for building the UI portion of a Shiny application that generates clean and human-readable code.
  • shinysnip - Simple Shiny code snippets generator in VS Code.
  • textmate.rstheme - A light theme for VS Code inspired by the TextMate (default) theme in RStudio IDE.

Books

Videos / Screencasts

  • Shiny Developer Series - Interviews with practitioners & developers of Shiny and the broader ecosystem of Shiny packages, plus occasional live streams of Shiny app development in action.

Shiny for Python

Python - Theming

Python - UI Components

  • py-htmltools - Tools for creating, manipulating, and writing HTML from Python.
  • py-faicons - An interface to Font Awesome for use in Shiny for Python.
  • py-shinywidgets - Render ipywidgets inside a Shiny app.
  • py_shiny_semantic - Create rich web applications in PyShiny using styles and components from Fomantic UI.

Python - Frameworks

  • Tapyr - Shiny for Python application template.

Python - Deploy

  • py-shinylive - Export Shiny applications as Shinylive applications.
  • rsconnect-python - CLI for interacting with and deploying to Posit Connect.

Python - Persistent Data Storage

  • pins-python - Publish data, models, and other Python objects for sharing across projects and with colleagues.