Name it, configure it, download it. You get a best-practice project skeleton —
numbered pipeline or a targets DAG, config.R, renv,
Quarto report, Makefile, Docker, Dev Containers, CI, and tests — zipped and ready to
extract. No setup script to run.
Every project follows the same numbered flow — raw → clean → model → visualize → report.
Pull raw data into 01_data/raw_data/ — never edited by hand.
Transform & tidy into 01_data/clean_data/.
Analyse; save results to 03_outputs/tables/.
Maps & figures to 03_outputs/figures/.
One Quarto doc ties it all together.
Robust relative paths that work no matter where a script is run from.
Pin every package version so collaborators get the exact same environment.
Pin the whole OS + R version with a rocker-based image for total reproducibility.
set.seed() wired into config so stochastic steps are deterministic.
Tidyverse-first, with vroom for fast reads/writes of delimited data.
Optional test scaffold and an air/lintr config to keep code clean.
Optional _targets.R pipeline that skips steps whose inputs haven't changed.
One-click, fully pinned VS Code / GitHub Codespaces environment.
Your builder configuration autosaves, and can be exported or shared as a link.
Custom packages, config variables, and folders — add anything the catalogue doesn't cover.
A true one-stop shop — toggle any combination on or off, the preview and download update live.
| Project name / author / email / ORCID / description | Fill config.R, README, CITATION.cff, LICENSE, Zenodo metadata |
| Spatial project | Adds sf/terra/leaflet + CRS config |
| Core packages | 18+ catalogue packages incl. tidyverse, vroom, arrow, DBI, googledrive, gt, plotly, patchwork, cowplot |
| Additional packages | Any CRAN/GitHub package not in the catalogue |
| Random seed / min R version | set.seed() + version badge & requirements |
| Numbering style | Padded / plain / alpha / upper / none prefixes on folders & scripts |
| License | MIT, Apache-2.0, GPL-3.0, CC-BY-4.0, or none |
| Pipeline runner | Makefile, run.R, or both |
| targets pipeline | _targets.R DAG with caching — skips unchanged steps |
| renv | Pinned, restorable package versions |
| uvr | uvr.toml + uvr.lock via uvr sync; replaces renv |
| Quarto report | Numbered .qmd report in HTML/PDF/Word |
| Git + CI | .gitignore + GitHub Actions pipeline run on every push |
| .Rprofile + .Renviron | Sane session defaults + environment variable template |
| Dockerfile | Pinned rocker image, spatial system libs when needed |
| Dev Container | One-click VS Code / Codespaces environment |
| testthat | tests/ skeleton wired into Makefile / CI |
| lintr | .lintr + .editorconfig |
| air | air.toml, make style, CI format check |
| pre-commit | Git hooks that lint & format before every commit |
| GitHub templates | Issue forms, PR template, Dependabot |
| CITATION.cff | Machine-readable citation metadata |
| Zenodo archive | .zenodo.json for an archival DOI |
| Data dictionary | Template CSV + a README for 01_data/ |
| Community docs | CONTRIBUTING.md + Code of Conduct |
| Session log | Capture sessionInfo() on every run |
| Custom config variables / folders | Anything the template doesn't already cover |
| Autosave | Your setup persists in this browser between visits |
| Copy link | Share a URL that reopens the builder with your exact setup |
| Export / Import JSON | Save a setup to reuse across future projects |
The core set is tidyverse-first. vroom is included for fast, tidy reading and writing of delimited files (it returns a tibble and plays nicely with dplyr), and conflicted can be toggled on to make any ambiguous function calls explicit.
make all and Rscript run.R always re-run every step. targets::tar_make() builds a dependency graph and only reruns steps whose inputs changed — pick it for anything beyond a quick script.
They stack, not compete: renv pins R packages, Docker pins the OS + R version too, and a Dev Container wraps Docker with a ready-to-code VS Code/Codespaces setup. Use whichever matches how much environment drift you're worried about.
No. The whole builder — form, preview, zip generation — runs client-side in your browser with JSZip. Export/share features write to your clipboard, disk, or the URL bar only.