R Project Template
The one-stop shop for reproducible R

Spin up a clean R project
in one click.

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.

100% in your browser Nothing uploaded Save, export & share your setup 25+ toggles, zero lock-in

1 · Configure

Start from a preset
Save & share this setup (auto-saved in your browser)
Identity
Type & packages
Core packages tidyverse-first, with vroom for fast file I/O
Coordinate systems
Reproducibility & tooling
Extras
Additional packages

Any other CRAN/GitHub packages to library() in config.R (and install via renv/Docker).

Custom config variables

Extra constants appended to config.R under # Custom ----.

Custom folders

Additional directories created in the project root (e.g. 04_docs/notes).

2 · Preview


        

        

        

        

        

        

A pipeline you can actually reproduce

Every project follows the same numbered flow — raw → clean → model → visualize → report.

01

Download

Pull raw data into 01_data/raw_data/ — never edited by hand.

→
02

Clean

Transform & tidy into 01_data/clean_data/.

→
03

Model

Analyse; save results to 03_outputs/tables/.

→
04

Visualize

Maps & figures to 03_outputs/figures/.

→
05

Report

One Quarto doc ties it all together.

here::here() paths

Robust relative paths that work no matter where a script is run from.

renv lockfile

Pin every package version so collaborators get the exact same environment.

Docker option

Pin the whole OS + R version with a rocker-based image for total reproducibility.

Seeded

set.seed() wired into config so stochastic steps are deterministic.

Fast, tidy I/O

Tidyverse-first, with vroom for fast reads/writes of delimited data.

testthat + lint

Optional test scaffold and an air/lintr config to keep code clean.

targets DAG

Optional _targets.R pipeline that skips steps whose inputs haven't changed.

Dev Containers

One-click, fully pinned VS Code / GitHub Codespaces environment.

Save & share setups

Your builder configuration autosaves, and can be exported or shared as a link.

Fully customizable

Custom packages, config variables, and folders — add anything the catalogue doesn't cover.

After you download

  1. Unzip into your projects folder.
  2. Open project.Rproj in RStudio.
  3. Run renv::restore() to install pinned packages.
  4. Start with 02_scripts/01_download_data.R and work through the files in order.

Every option, at a glance

A true one-stop shop — toggle any combination on or off, the preview and download update live.

Identity & type

Project name / author / email / ORCID / descriptionFill config.R, README, CITATION.cff, LICENSE, Zenodo metadata
Spatial projectAdds sf/terra/leaflet + CRS config
Core packages18+ catalogue packages incl. tidyverse, vroom, arrow, DBI, googledrive, gt, plotly, patchwork, cowplot
Additional packagesAny CRAN/GitHub package not in the catalogue

Reproducibility & tooling

Random seed / min R versionset.seed() + version badge & requirements
Numbering stylePadded / plain / alpha / upper / none prefixes on folders & scripts
LicenseMIT, Apache-2.0, GPL-3.0, CC-BY-4.0, or none
Pipeline runnerMakefile, run.R, or both
targets pipeline_targets.R DAG with caching — skips unchanged steps
renvPinned, restorable package versions
uvruvr.toml + uvr.lock via uvr sync; replaces renv
Quarto reportNumbered .qmd report in HTML/PDF/Word
Git + CI.gitignore + GitHub Actions pipeline run on every push
.Rprofile + .RenvironSane session defaults + environment variable template

Extras

DockerfilePinned rocker image, spatial system libs when needed
Dev ContainerOne-click VS Code / Codespaces environment
testthattests/ skeleton wired into Makefile / CI
lintr.lintr + .editorconfig
airair.toml, make style, CI format check
pre-commitGit hooks that lint & format before every commit
GitHub templatesIssue forms, PR template, Dependabot
CITATION.cffMachine-readable citation metadata
Zenodo archive.zenodo.json for an archival DOI
Data dictionaryTemplate CSV + a README for 01_data/
Community docsCONTRIBUTING.md + Code of Conduct
Session logCapture sessionInfo() on every run
Custom config variables / foldersAnything the template doesn't already cover

Save, export & share

AutosaveYour setup persists in this browser between visits
Copy linkShare a URL that reopens the builder with your exact setup
Export / Import JSONSave a setup to reuse across future projects

FAQ

Which packages handle reading and writing data?

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.

Makefile, run.R, or targets — which do I need?

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.

renv, Docker, or Dev Containers?

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.

Is anything ever uploaded?

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.