Frameworks

Published

2025-03-26

Shiny frameworks

This section covers three popular Shiny frameworks: golem, leprechaun, and rhino. These frameworks provide structure and modularity and encourage better development practices, but each has its own philosophy, strengths, and ideal use case. See the Shiny Frameworks supplemental website for more information on how each application was created.

golem

The golem chapter creates gap (a golem app-package).

Topics covered

The applications in Chapter 23 (golem) can be accessed with the launch() or get() functions from the shinypak R package:

# install.packages('pak')
pak::pak('mjfrigaard/shinypak')
library(shinypak)

Chapter 23 applications:

list_apps(regex = '^23')
## # A tibble: 1 × 2
##   branch   last_updated       
##   <chr>    <dttm>             
## 1 23_golem 2025-03-25 11:43:13
Package Version Title Description
golem 0.5.1 A Framework for Robust Shiny Applications An opinionated framework for building a production-ready 'Shiny' application. This package contains a series of tools for building a robust 'Shiny' application from start to finish.

leprechaun

The leprechaun chapter creates lap (a leprechaun app-package).

Topics covered

The applications in Chapter 24 (leprechaun) can be accessed with the launch() or get() functions from the shinypak R package:

# install.packages('pak')
pak::pak('mjfrigaard/shinypak')
library(shinypak)

Chapter 24 applications:

list_apps(regex = '^24')
## # A tibble: 1 × 2
##   branch        last_updated       
##   <chr>         <dttm>             
## 1 24_leprechaun 2025-04-06 22:46:54
Package Version Title Description
leprechaun 1.0.0.9001 Create Simple 'Shiny' Applications as Packages Code generator for robust dependency-free 'Shiny' applications in the form of packages. It includes numerous convenience functions to create modules, include utility functions to create common 'Bootstrap' elements, setup a project from the ground-up, and much more.

rap

rap is a rhino app (pseudo-package)1

The applications in Chapter 25 (rhino) can be accessed with the launch() or get() functions from the shinypak R package:

# install.packages('pak')
pak::pak('mjfrigaard/shinypak')
library(shinypak)

Chapter 25 applications:

list_apps(regex = '^25')
## # A tibble: 1 × 2
##   branch   last_updated       
##   <chr>    <dttm>             
## 1 25_rhino 2025-04-09 11:52:51
Package Version Title Description
rhino 1.11.0 A Framework for Enterprise Shiny Applications A framework that supports creating and extending enterprise Shiny applications using best practices.

  1. rhino apps aren’t R packages–they’re dependencies are managed with a dependencies.R file and box modules.↩︎