Project Types
Project Types Overview
Understanding the different project types in Framework
Overview
Framework supports four project types, each optimized for different workflows:
| Type | Best For |
|---|---|
| Standard Project | Data analysis, research, reporting |
| Privacy Sensitive Project | Research with private/public data separation |
| Course/Teaching | Academic courses with lectures and assignments |
| Presentation | Slides and presentations |
Choosing a Project Type
Standard Project (Default)
Full-featured with organized data, work, and output directories.
Use for most data analysis work:
- Research projects
- Data pipelines
- Exploratory data analysis
Default structure:
my-analysis/
├── functions/
├── inputs/
│ ├── raw/
│ ├── intermediate/
│ └── final/
├── notebooks/
├── outputs/
│ └── notebooks/
├── scripts/
└── settings.yml
Optional directories available in the GUI: docs/, scratch/
Privacy Sensitive Project
Enhanced privacy controls with separate private/public flows.
Use for research involving sensitive or protected data:
- Research with sensitive data, such as protected health information
- Projects requiring clear public/private separation
Default structure:
my-study/
├── functions/
├── inputs/
│ ├── private/
│ │ ├── raw/
│ │ ├── intermediate/
│ │ └── final/
│ └── public/
│ ├── raw/
│ ├── intermediate/
│ └── final/
├── notebooks/
├── outputs/
│ └── private/
│ └── notebooks/
├── scripts/
└── settings.yml
Optional directories available in the GUI: docs/, scratch/
Course/Teaching
Simplified structure for teaching materials, such as lecture slides, student assignments, and course materials
Default structure:
my-course/
├── assignments/
├── course_docs/
├── data/
├── readings/
├── slides/
└── settings.yml
Optional directories available in the GUI: functions/, modules/, scripts/
Presentation
Minimal structure for slides and presentations.
Default structure:
my-presentation/
├── presentation.qmd
└── settings.yml
Optional directories available in the GUI: data/, functions/, outputs/, scripts/
Creating Projects
Using the GUI
The easiest way to create projects is through the GUI:
framework::setup()
Navigate to New Project and follow the wizard.
Programmatic Creation
# Create a standard project
new_project("sales-analysis", "~/projects/sales-analysis")
# Create a privacy sensitive project
new_project_sensitive("medical-study", "~/projects/medical")
# Create a course
new_course("data-science-101", "~/teaching/ds101")
# Create a presentation
new_presentation("q4-report", "~/presentations/q4")
Shared Features
All project types include:
- Configuration (
settings.yml) - Project settings - Git integration - Version control ready with appropriate
.gitignore - Quarto support - Modern document rendering
- AI assistant context - Optional CLAUDE.md/AGENTS.md generation