Starting a new Quarto project usually involves multiple tedious steps: creating directories, copying templates, configuring YAML files, setting up version control, creating initial documents.
The quarto_project() function changes this. With a
single command, you get a complete, production-ready Quarto project with
all configuration, styling, and scaffolding you need to start working
immediately.
When you run quarto_project(), froggeR creates a
complete project structure:
my-project/
├── _brand.yml # Branding configuration
├── _quarto.yml # Quarto project configuration
├── _variables.yml # Author metadata
├── custom.scss # Custom styling
├── .gitignore # Enhanced version control settings
├── README.md # Project documentation
├── dated_progress_notes.md # Project tracking
├── references.bib # Bibliography template
└── my-project.qmd # Initial Quarto document
Every file is configured, ready to use, and integrated with your global settings.
froggeR requires Quarto 1.6+ for branding support:
If needed, upgrade at https://quarto.org/docs/download/.
Configure your global metadata and branding:
This is optional but ensures your projects automatically include your author information and branding.
Let’s walk through a real-world example with Dr. Rachel Kim.
Rachel has configured global settings:
settings())brand_settings())She’s starting a new analysis project:
> froggeR::quarto_project(name = "sleep-deprivation-study", path = "~/research", example = TRUE)
✔ Created Quarto project directory: sleep-deprivation-study
✔ Created _quarto.yml
ℹ Copying existing froggeR settings...
✔ Created _variables.yml
ℹ Copying existing froggeR brand settings...
✔ Created _brand.yml
✔ Created custom.scss
✔ Created .gitignore
✔ Created README.md
✔ Created dated_progress_notes.md
✔ Created sleep-deprivation-study.qmd with examples
✔ Created references.bib
✔ froggeR project setup complete. Opening in new session...A new Positron or RStudio session opens with the complete project ready to go.
Each file serves a specific purpose:
_quarto.yml - Project configuration
with sensible defaults for HTML rendering, table of contents, code
folding, and bibliography support; references variables from
_variables.yml
_variables.yml - Author metadata
automatically populated from global settings
_brand.yml - Branding configuration
automatically copied from global settings (see Building Your Brand
Identity for details)
custom.scss - SCSS template for custom
styling, ready for customization
.gitignore - Pre-configured to exclude
R and Quarto artifacts
README.md - Template for project
documentation
dated_progress_notes.md - Dated file
for tracking project progress
references.bib - Template bibliography
file for citations
sleep-deprivation-study.qmd - Initial
Quarto document with examples (because example = TRUE)
name (required)The project name. Used for directory name, .qmd filename, and project title.
Rules: Only letters, numbers, hyphens, and underscores
path (optional)Where to create the project. Defaults to current working directory.
example (optional, default = TRUE)Whether to include examples in the initial .qmd
file.
example = TRUE: Includes example content showing Quarto
featuresexample = FALSE: Creates a minimal Quarto documentThe execution sequence:
quarto::quarto_create_project()_quarto.yml: Copy froggeR’s
template with title updatedwrite_variables() - Author metadatawrite_brand() - Branding configurationwrite_scss() - Custom stylingwrite_ignore() - Version control settingswrite_readme() - Documentation templatewrite_notes() - Progress trackingwrite_quarto() - Initial Quarto documentreferences.bibWhen write_variables() and write_brand()
run, they check for global settings:
config.yml exists → copy to project
_variables.yml_brand.yml exists → copy to project
_brand.ymlThis is why configuring global settings first is powerful—your projects automatically inherit them.
Comparison: Manual vs. froggeR
Manual process (15-20 minutes):
1. Create project directory
2. Initialize Quarto project
3. Create and configure _quarto.yml
4. Create _variables.yml and type author info
5. Create _brand.yml
6. Create and configure custom.scss
7. Set up .gitignore
8. Create README, progress file, initial document
9. Create references.bib
10. Test render and fix configuration errors
froggeR process (30 seconds): 1. Run
froggeR::quarto_project(name = "my-project")
Annual savings (20 projects/year):
- Manual: 20 × 17.5 min = 350 min (5.8 hours)
- froggeR: 20 × 0.5 min = 10 min
- Saved: 340 minutes per year
Upgrade Quarto at https://quarto.org/docs/download/
path. Please enter a valid project
directory.”The path parameter must point to an existing
directory:
Choose a different name or remove the existing directory:
After quarto_project() creates your project, you can
customize:
_quarto.yml: Modify project-level
defaults (table of contents depth, code folding, layout, and references
variables from _variables.yml)custom.scss: Add custom styling for
callouts, figures, custom classesreferences.bib: Add your
citationsdated_progress_notes.md: Track project
progressREADME.md: Document your projectThe .gitignore is pre-configured for R and Quarto
projects:
What gets committed:
- All configuration files
- All templates
- Initial Quarto document
- Progress notes
What gets ignored:
- R session data (.RData, .Rhistory,
etc.)
- Quarto build artifacts (/.quarto/,
/_site/)
- Rendered HTML files (unless modified)
Explore how quarto_project() integrates with the broader
froggeR ecosystem:
settings()brand_settings()The quarto_project() function transforms project
creation from 15-20 minutes to 30 seconds:
Key parameters:
name: Project name (required)path: Where to create project (optional, defaults to
current directory)example: Include example content (optional, defaults to
TRUE)By combining settings(), brand_settings(),
and quarto_project(), you create a powerful workflow that
eliminates repetitive setup and lets you focus on your actual work.