Frameworks

Published

2026-10-16

The applications in Chapter 19 (shinyapps.io) can be accessed with the launch() or get() functions from the shinypak R package:

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

Chapter 19 applications:

list_apps(regex = '^19')
## # A tibble: 1 × 2
##   branch           last_updated       
##   <chr>            <dttm>             
## 1 19_connect-cloud 2026-10-13 18:14:09

Docker dives into:

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

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

Chapter 20 applications:

list_apps(regex = '^20')
## # A tibble: 1 × 2
##   branch    last_updated       
##   <chr>     <dttm>             
## 1 20_docker 2026-10-13 17:58:54

The GitHub Actions chapter includes three examples of CI/CD workflows:

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

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

Chapter 21 applications:

list_apps(regex = '^21')
## # A tibble: 3 × 2
##   branch                last_updated       
##   <chr>                 <dttm>             
## 1 21.1_gha-style        2026-10-13 18:05:05
## 2 21.2_gha-shiny-deploy 2026-06-19 18:45:55
## 3 21.3_gha-shiny-docker 2026-06-19 18:45:56

pkgdown describes:

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

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

Chapter 22 applications:

list_apps(regex = '^22')
## # A tibble: 1 × 2
##   branch     last_updated       
##   <chr>      <dttm>             
## 1 22_pkgdown 2026-06-19 18:45:57

::::

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).

Warning in .f(.x[[i]], ...): Package 'golem' not
found or has no DESCRIPTION file.
Package Version Title Description
golem NA NA NA

golem topics

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 18:43:13

leprechaun

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

Warning in .f(.x[[i]], ...): Package 'leprechaun'
not found or has no DESCRIPTION file.
Package Version Title Description
leprechaun NA NA NA

leprechaun topics

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-07 05:46:54

rhino

rap is a rhino app (pseudo-package)1

Warning in .f(.x[[i]], ...): Package 'rhino' not
found or has no DESCRIPTION file.
Package Version Title Description
rhino NA NA NA

rhino topics

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 18:52:51

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