awesome-shiny-extensions
🐝 Awesome R and Python packages offering extended UI or server components for the web framework Shiny
https://github.com/nanxstats/awesome-shiny-extensions
Last synced: 14 days ago
JSON representation
Backend
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.
- plumber2 - Easy and powerful webservers in R. A complete rewrite of plumber.
- htmxr - Build server-driven web applications in R with htmx for partial page updates and plumber2 for non-blocking HTTP endpoints.
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.
- cognitoR - Authentication for Shiny apps with Amazon Cognito.
- login - Shiny login module providing customizable login/logout UI.
- polished - Authentication, user administration, and hosting for Shiny apps.
- shinydbauth - Simple authentication for Shiny applications with database-backed credential storage.
- shinyOAuth - Provider-agnostic OAuth authentication for Shiny applications.
- tapLock - Seamless Single Sign-On for Shiny.
- rAccess - Access control module for Shiny applications with hierarchical permission management.
Cloud Integration
- cloudyr - R packages for integrating with AWS, Azure, and Google Cloud.
Database
- Best Practices in Working with Databases - Packages and tutorials for connecting R and Shiny apps to databases.
- pool - Database connection pooling in R.
- sergeant - Transform and query data with Apache Drill.
- elastic - R client for the Elasticsearch HTTP API.
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.
Job Scheduling
- cronR - R package for managing cron jobs.
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.
- r2social - Social media sharing and connect buttons for Shiny and R Markdown.
Persistent Data Storage
- pins - Publish data sets, models, and other R objects to folders, Posit Connect, Amazon S3, and more.
- shinystate - Customize Shiny's bookmarkable state with configurable storage locations via the pins package.
- shinysnap - Save and restore the state of Shiny apps as JSON snapshots without page reloads or bookmarking.
URL Routing
- Accepting POST requests from Shiny - Undocumented feature for handling POST requests that are not associated with any specific Shiny session.
- 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.
- shinypayload - Accept POST data and URL parameters in Shiny for same-port integration.
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.
- AutoDeskR - Interface to Autodesk Platform Services APIs with Shiny viewers for 2D and 3D design models.
- gofigR - Shiny plot modules that publish figures to GoFigr.
Deploy
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).
- shiny.pwa - Progressive Web App (PWA) support for Shiny, enabling installable web apps.
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.
- tinyshinyserver - Lightweight multi-app Shiny proxy with WebSocket support and automatic health monitoring.
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
Debugging
- reactlog - Visual debugger for Shiny reactivity.
- shinyobjects - Access reactive data interactively to help debug reactive data frames and load assigned objects into local environment.
- shinyStep - Shiny modules for user-editable R functions with an Ace code editor, R console, and step debugger.
- flow - Visualize code flow and dependencies, including dependencies between Shiny app modules.
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.
Monitoring and Analytics
- 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 - A Prometheus client library for R, Plumber, and Shiny.
- shiny.telemetry - Track events occurring on a user session and stores them in a local or remote database.
- shinylogs - Record everything that happens in a Shiny application, including inputs, outputs, errors, and session information.
- AzureAppInsights - Include Azure Application Insights telemetry in Shiny apps.
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.
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.
- midas - Bootstrap new Shiny functions by turning HTML snippets directly into R tag functions.
- html2R - Converts HTML markup into R tag code for building Shiny UIs.
Scaling
- promises - Promise-based asynchronous programming for R. Using promises with Shiny.
- shinyParallel - Run Shiny applications in a multi-session mode.
- FutureManager - Background processes for long-running operations in Shiny applications.
- shiny.worker - Delegate heavy computation tasks to a separate process in a Shiny application.
- ipc - Tools for message passing between processes, with Shiny-specific features for async progress bars and reactive value updates from futures.
- jsplyr - Dplyr backend for Shiny that lazily translates data wrangling verbs into client-side JavaScript and returns results asynchronously as promises.
Testing
- shinytest - Automated testing for Shiny apps.
- shinytest2 - Automated unit testing of Shiny apps through a headless Chromium browser.
- shinyloadtest - Load testing for Shiny apps.
- reactor - Unit testing for Shiny reactivity.
- shinyValidator - Audit Shiny apps at each commit.
- data.validator - Validate dataset and generate a report.
Frameworks
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.
- blockr.core - Graphical web framework for data manipulation and visualization using reusable, composable blocks.
- aurora - Build stateless web apps in R with plumber2 and bslib.
- learnr - Interactive R Markdown tutorials with Shiny-powered exercises, quizzes, and question widgets.
- surveydown - Markdown-based programmable surveys using Quarto and Shiny, with skip logic, multiple question types, and database storage.
- irid - Component-based reactive UI framework for Shiny with fine-grained DOM updates that avoid full re-rendering and update callbacks.
Framework extensions
- teal.code - Code storage and execution class for teal applications.
- teal.data - Data model for teal applications.
- teal.modules.clinical - A set of teal modules for standard clinical outputs.
- teal.modules.general - General modules for teal applications.
- teal.reporter - Reporting tools for Shiny modules.
- teal.slice - Filter module for teal applications.
- teal.transform - Functions and Shiny modules for extracting and merging data within the teal framework.
- teal.widgets - Shiny widgets for teal applications.
- blockr.dag - A directed acyclic graph extension for blockr.
- blockr.dock - A docking layout manager for blockr.
- blockr.dplyr - Interactive dplyr data transformation blocks for blockr.
- blockr.ggplot - Interactive ggplot2 visualization blocks for blockr.
- blockr.io - Interactive file import and export blocks for blockr.
- formods - Shiny modules for general tasks including data wrangling, figure generation, and app state management.
- teal.picks - Dataset and variable picker and merge module for teal applications.
- uteals - Shared decorators, transformators, and utility functions that extend teal modules.
- tutorial.helpers - Helper functions and Shiny modules for creating, editing, and testing tutorials with learnr, including collecting student submissions.
- mwshiny - Run a Shiny app across multiple connected browser windows.
- VizModules - Flexible Shiny plotting modules for composing interactive visualization apps.
- blockr.session - Persist, restore, share, and manage blockr boards with pins-backed storage, including Posit Connect user accounts and version history.
- teal.logger - Logging setup for the teal family of packages.
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.
- periscope - Enterprise streamlined Shiny application framework with reusable downloadable modules.
- periscope2 - Enterprise streamlined Shiny application framework using bs4Dash.
- autoshiny - Automatically transform an R function into a Shiny app object or app files.
- ggpaintr - Build formula-driven Shiny apps for ggplot2 with automatically generated controls, live plots, and reproducible code.
Miscellaneous
Books
- Mastering Shiny: Build Interactive Apps, Reports, and Dashboards Powered by R
- Engineering Production-Grade Shiny Apps
- JavaScript for R
- Outstanding User Interfaces with Shiny
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
- 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.
- 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.
UI Customization
- Bootstrap Live Customizer - Customize Bootswatch themes (Bootstrap 3) to create your own Bootstrap themes.
- google-webfonts-helper - A hassle-free way to self-hosted Google Fonts, useful for air-gapped environments.
- shinyfullscreen - Display HTML elements on full screen using 'screenfull.js'.
- shinybrowser - Find out information about a user's web browser in Shiny.
- shinytitle - Update the browser window title dynamically in a Shiny session.
- a11yShiny - Accessibility-enhanced replacements for popular Shiny UI functions.
- shinyseo - Inject SEO, Open Graph, Twitter, site verification, and schema.org metadata into Shiny apps.
- favawesome - Use Font Awesome Icons as Shiny favicons.
- metathis - Add HTML metadata tags for Shiny apps and R Markdown documents.
- hypothesis - Add, share, and manage hypothes.is annotations in Shiny apps and R Markdown documents.
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 - Chat
- shinychat - Chat UI component for Shiny for Python.
- shinyrealtime - Integrate OpenAI's Realtime API.
Python - Deploy
- py-shinylive - Export Shiny applications as Shinylive applications.
- rsconnect-python - CLI for interacting with and deploying to Posit Connect.
Python - Frameworks
- Tapyr - Shiny for Python application template.
Python - Persistent Data Storage
- pins-python - Publish data, models, and other Python objects for sharing across projects and with colleagues.
Python - Table
- itables - Display Pandas and Polars data frames as interactive DataTables that you can sort, paginate, scroll, and filter.
- reactable-py - Interactive data tables for Python, port of the R package reactable.
- great-tables - Create styled display tables in Python.
- gt-extras - Additional helper functions for enhancing great-tables tables.
Python - Theming
- py-shinyswatch - Bootswatch themes for py-shiny.
-
brand-yml
- Unified branding with
_brand.ymlfiles.
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.
- py-shiny-validate - Input validation for Shiny for Python applications.
- shinymedia - UI controls for recording video clips and playing audio media.
Theming
Dashboard Theming
- shinydashboard - Shiny dashboarding framework based on AdminLTE 2.
- shinydashboardPlus - Additional AdminLTE 2 components for shinydashboard.
- gentelellaShiny - Bootstrap 3 Gentelella theme for Shiny dashboards.
- semantic.dashboard - Fomantic UI for Shiny dashboards.
- bs4Dash - Bootstrap 4 Shiny dashboards using AdminLTE 3.
- argonDash - Bootstrap 4 Argon template for Shiny dashboards.
- tablerDash - Tabler dashboard template for Shiny with Bootstrap 4.
- shidashi - A Shiny dashboard template system using AdminLTE 3 template.
- flexdashboard - R Markdown format for flexible dashboards.
- bs4Dashkit - Branding, theme application, and navigation utilities for bs4Dash dashboards.
- bslibdash - Bootstrap 5 dashboard components built on bslib, with sidebar navigation, cards, value boxes, and header menus.
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.
- shinymaterial - Material Design for Shiny with Materialize.css.
- shinyUIkit - UIkit API for Shiny.