You’re reading the doc about version: 0.5.1. Note that golem follows the semantic versioning scheme.

Production-grade shiny applications, from creation to deployment.

golem is an opinionated framework that sets the standard for building production-grade shiny applications. It provides a structured environment that enforces best practices, fosters maintainability, and ensures your applications are reliable, and ready for deployment in real-world environments.

With golem, developers can focus on creating high-quality, robust shiny apps with confidence, knowing that the framework guides them through every step of the development process.

Installation

  • You can install the stable version from CRAN with:
install.packages("golem")
  • You can install the development version from GitHub with:
# install.packages("remotes")
remotes::install_github("Thinkr-open/golem") # Stable development version
# remotes::install_github("Thinkr-open/golem@dev") # Bleeding edge development version

Get Started

Create a new app with the project template from RStudio:

Or use the golem::create_golem() function:

golem::create_golem("myapp")

See your app in action by running golem::run_dev() function.

Then, follow the scripts at:

  • dev/01_start.R to configure your project at launch
  • dev/02_dev.R for day to day development
  • dev/03_deploy.R to build the deployment enabler for your app

Resources

The golem package is part of the {golemverse}, a series of tools for building production shiny apps.

A list of various golem related resources (tutorials, video, blog post,…) can be found here, along with blogposts, and links to other packages of the golemverse.


Dev part

This README has been compiled on the

Sys.time()
#> [1] "2024-08-27 09:39:59 UTC"

Here are the test & coverage results:

devtools::check(quiet = TRUE)
#> ℹ Loading golem
#> ── R CMD check results ──────────────────────────────────────── golem 0.5.1 ────
#> Duration: 44.8s
#> 
#> 0 errors ✔ | 0 warnings ✔ | 0 notes ✔

Sys.setenv("NOT_CRAN" = TRUE);covr::package_coverage()
#> golem Coverage: 84.85%
#> R/boostrap_base.R: 0.00%
#> R/bootstrap_attachment.R: 0.00%
#> R/bootstrap_pkgload.R: 0.00%
#> R/bootstrap_roxygen2.R: 0.00%
#> R/bootstrap_rstudio_api.R: 0.00%
#> R/bootstrap_testthat.R: 0.00%
#> R/bootstrap_dockerfiler.R: 23.33%
#> R/bootstrap_usethis.R: 28.57%
#> R/test_helpers.R: 47.37%
#> R/bootstrap_desc.R: 55.56%
#> R/addins.R: 66.67%
#> R/modules_fn.R: 75.74%
#> R/after_creation_msg.R: 76.39%
#> R/create_golem.R: 77.12%
#> R/add_rstudio_files.R: 77.88%
#> R/install_dev_deps.R: 78.26%
#> R/add_r_files.R: 78.70%
#> R/config.R: 79.23%
#> R/use_files.R: 80.63%
#> R/reload.R: 84.69%
#> R/disable_autoload.R: 85.00%
#> R/add_dockerfiles.R: 87.10%
#> R/sanity_check.R: 87.18%
#> R/make_dev.R: 90.00%
#> R/use_favicon.R: 90.32%
#> R/add_dockerfiles_renv.R: 91.95%
#> R/add_files.R: 93.14%
#> R/golem-yaml-get.R: 93.18%
#> R/js.R: 93.75%
#> R/run_dev.R: 95.65%
#> R/desc.R: 96.77%
#> R/use_recommended.R: 97.37%
#> R/use_utils.R: 97.40%
#> R/utils.R: 99.19%
#> R/add_resource_path.R: 100.00%
#> R/boostrap_cli.R: 100.00%
#> R/boostrap_crayon.R: 100.00%
#> R/boostrap_fs.R: 100.00%
#> R/browser_button.R: 100.00%
#> R/bundle_resources.R: 100.00%
#> R/cats.R: 100.00%
#> R/enable_roxygenize.R: 100.00%
#> R/get_sysreqs.R: 100.00%
#> R/globals.R: 100.00%
#> R/golem_welcome_page.R: 100.00%
#> R/golem-yaml-set.R: 100.00%
#> R/golem-yaml-utils.R: 100.00%
#> R/is_golem.R: 100.00%
#> R/is_running.R: 100.00%
#> R/maintenance_page.R: 100.00%
#> R/pkg_tools.R: 100.00%
#> R/set_golem_options.R: 100.00%
#> R/templates.R: 100.00%
#> R/use_readme.R: 100.00%
#> R/with_opt.R: 100.00%

CoC

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Note for the contributors

Please style the files according to grkstyle::grk_style_transformer()

# If you work in RStudio
options(styler.addins_style_transformer = "grkstyle::grk_style_transformer()")

# If you work in VSCode
options(languageserver.formatting_style = function(options) {
  grkstyle::grk_style_transformer()
})