Skip to main content

Frameworks

Published

2026-11-06

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_webr 2026-11-06 17:05:00

::::

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.
# A tibble: 1 × 4
  Package Version Title Description
  <chr>   <lgl>   <lgl> <lgl>      
1 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: 3 × 2
##   branch                 last_updated       
##   <chr>                  <dttm>             
## 1 23.1_shinyelectron     2026-11-02 17:01:29
## 2 23.2_shinyelectron-dmg 2026-11-02 17:01:27
## 3 23.3_shinyelectron-deb 2026-11-02 16:34:39

leprechaun

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

Warning in .f(.x[[i]], ...): Package 'leprechaun'
not found or has no DESCRIPTION file.
# A tibble: 1 × 4
  Package    Version Title Description
  <chr>      <lgl>   <lgl> <lgl>      
1 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_pkgdown 2026-10-30 15:02:03

rhino

rap is a rhino app (pseudo-package)1

Warning in .f(.x[[i]], ...): Package 'rhino' not
found or has no DESCRIPTION file.
# A tibble: 1 × 4
  Package Version Title Description
  <chr>   <lgl>   <lgl> <lgl>      
1 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_golem 2026-10-30 15:02:04

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