
froggeR: Structured project standards for R and Quarto
Most programming languages have conventions for where files belong. R
rarely agrees on one, and it shows. Scripts, Quarto documents,
stylesheets, and data files pile up in root directories like laundry on
a chair. froggeR offers a standard: R/ for scripts,
pages/ for Quarto documents, data/ for data
files, www/ for assets. Build habits that carry over
whether youβre writing an analysis, building an R package, or picking up
a new language entirely.
froggeR gives every project the same enforced layout so you spend time analyzing, not organizing:
init() downloads
the latest scaffold and youβre working in seconds. Scripts go in
R/, Quarto documents in pages/, assets in
www/, data in data/. Every project, every
time.R/_load.R, R/_libraries.R, and
R/_data_dictionary.R give every project a consistent entry
point. write_quarto() creates pre-formatted
.qmd files with your author info and branding baked
in.write_variables() and write_brand() create
your metadata and branding files. Save globally with
save_variables() and save_brand(), and every
future project picks them up automatically..gitignore and pre-commit hooks keep sensitive data and
common R artifacts out of version control.install.packages("froggeR")Initialize a complete project with a single command:
froggeR::init(path = "my_new_project")This creates:
my_new_project/
βββ R/
β βββ _data_dictionary.R # Variable labels and metadata
β βββ _libraries.R # Centralized package loading
β βββ _load.R # Sources everything. Your entry point.
βββ pages/
β βββ index.qmd # Main Quarto document
β βββ references.bib # Bibliography
βββ www/
β βββ custom.scss # Custom styling
β βββ tables.js # Table enhancements
βββ logos/ # Brand logos
βββ data/ # Data files (gitignored)
βββ _brand.yml # Quarto brand configuration
βββ _quarto.yml # Quarto project configuration
βββ _variables.yml # Author metadata
βββ .gitignore # Opinionated git protection
βββ .pre-commit-config.yaml # Pre-commit hook configuration
βββ README.md
froggeR stores configuration at two levels: global (system-wide) and project-local. Set it up once, and every future project inherits your settings.
froggeR::write_variables() # Create/edit _variables.yml (author metadata)
froggeR::write_brand() # Create/edit _brand.yml (colors, logos, typography)Both functions create the file if it does not exist, or open it for editing if it does. New files start from your global config or the remote template. When youβre happy, persist to global config:
froggeR::save_variables() # Save project metadata for reuse
froggeR::save_brand() # Save project branding for reuseGlobal settings populate every new project created with
init(). Edit the project copy directly when you need
something specific.
Quickly generate new Quarto documents with pre-formatted headers:
froggeR::write_quarto(filename = "monthly_report")Your saved metadata automatically populates author information and branding.
froggeR includes a .gitignore that covers R artifacts,
Quarto build files, data files, and common sensitive patterns:
froggeR::write_ignore()One set of rules. Comprehensive by default. If your project needs
additional exclusions, edit .gitignore directly.
Generate a SCSS template for custom document styling:
froggeR::write_scss()
froggeR::write_scss("tables")Provides a formatted stylesheet with:
Customize your documentβs appearance by uncommenting desired styles.
| Function | Description |
|---|---|
init() |
Initialize a complete project from the latest remote template |
quarto_project() |
Removed. Use init() instead |
write_quarto() |
Create a Quarto document in pages/ |
write_variables() |
Create a _variables.yml metadata file |
write_brand() |
Create a _brand.yml brand configuration file |
save_variables() |
Save project _variables.yml to global config |
save_brand() |
Save project _brand.yml to global config |
write_ignore() |
Create an opinionated .gitignore |
write_scss() |
Create a custom.scss styling template in
www/ |
We welcome contributions and ideas! Hereβs how you can help:
froggeR is licensed under the MIT License. See the LICENSE file for details.
froggeR is built with these excellent packages: - cli - User-friendly command line interfaces - fs - Cross-platform file system operations - here - Project-oriented workflows - usethis - Workflow automation - rappdirs - Cross-platform configuration paths
Developed by Kyle Grealis