# Open Science Framework Tutorial: Step-by-Step Guide

By the end of this tutorial you will be able to create a complete Open Science Framework (OSF) project, organize it into components, upload and document your data, control who sees what, and publish a citable, frozen copy of your work. You will also know how OSF fits among other options for research data sharing, and which mistakes cause the most problems after a project goes public.

What you need on hand before starting:

- A web browser and an email address for the OSF account
- Your study files, ideally already organized into folders
- A short project description, a data dictionary if you have [tabular data](/blog/research-skills/tabular-data-what-it-is-and-how-to-analyze-it), and a decision about what can be shared publicly
- Optional, for advanced workflows, a GitHub or GitLab account you can connect to OSF

OSF is a free, open-access platform built and maintained by the Center for Open Science. Its core job is to hold projects that mix files, data, code, and documentation in one place, with fine-grained control over privacy. Published psychology and health research tutorials routinely use it as the public home for analysis scripts and data. A tutorial on multinomial processing tree models, for example, houses all of its examples, data, and annotated analysis scripts on the platform [1]. A step-by-step tutorial on transformer models for psychological time-series data mirrors its analysis code there alongside journal supplemental material [2]. An ordinal regression tutorial does the same for its simulation code and custom R functions [3].

## Why Researchers Use OSF for Research Data Sharing

Research data sharing serves three purposes. It lets other researchers verify and reuse your work. It satisfies journal and funder policies that increasingly require a data availability statement pointing to a real repository. And it protects your own lab, because a timestamped public record shows what you predicted and what you found.

Journals in behavioral and health sciences now commonly expect data, materials, and code to be deposited somewhere persistent. Survey data on how academics share research show that digital platforms became central to scholarly communication, especially after pandemic-era restrictions on in-person collaboration made online sharing the default [4]. The platforms researchers choose differ in what they handle well, which is why a brief comparison helps before you commit to one.

### How OSF Compares with Other Repositories

| Repository type | Best for | Typical limitation |
|--|--|--|
| OSF | Mixed projects, data plus code plus materials plus preregistrations, with private-to-public workflow | Generalist storage, not curated for a specific data type |
| GitHub or GitLab | Code and version control, collaborative development | Not designed as a permanent data archive, files can be deleted or moved |
| Zenodo and similar DOI-minting archives | Final archived datasets and code releases with [persistent identifiers](/knowledge/bioinformatics/persistent-identifiers-in-bioinformatics-selection-criteria-and-implementation-workflow) | Less suited to building and organizing an active project |
| Institutional repositories | Institution-mandated deposits and long-term curation | Access rules vary by institution |
| Domain-specific repositories | Field-standard formats and discovery by specialists | Narrower scope |

This comparison is qualitative by design. Pick the repository that matches your primary artifact. A rule of thumb many labs follow is to develop code on GitHub, then archive the release on a DOI-minting service, and use OSF as the umbrella that ties data, code, materials, and documentation together for a single study.

Some fields have gone further and built open science into institutional infrastructure. The Montreal Neurological Institute declared itself an open science organization in 2016 and built the C-BIG repository as an institution-level platform for biospecimens, clinical, imaging, and genetic data, showing that open sharing can operate at the level of governance and workflow rather than individual choice [5]. Most readers of this tutorial will not run an institutional repository, but the same principles apply at the project scale.

Preprint repositories also interact with your OSF project. Posting a preprint on bioRxiv or medRxiv and linking the OSF project in your cover materials is now a standard pattern for rapid, transparent dissemination in biomedical research [6].

## Step-by-Step: Building Your First OSF Project

![Five-step flow from creating an OSF account through components and uploads to publishing a registration with a DOI.](/article-images/illustrations/open-science-framework-tutorial-project-setup-steps.webp)

The following walkthrough uses a running example, a small survey study with a de-identified dataset, a questionnaire PDF, and an R analysis script. Every step describes what you click and what you should see.

### Step 1. Create an Account and Sign In

1. Go to the OSF homepage in your browser.
2. Choose "Sign up" and register with your institutional email if you have one, since institutional affiliation improves discoverability and can unlock institutional single sign-on later.
3. Confirm your email address, then sign in.

Expected result, your name appears in the upper right of the OSF dashboard, and the dashboard shows an empty "My Projects" area or a list of projects you already have access to.

### Step 2. Create the Project

1. Click the "Create new project" button on your dashboard.
2. Give the project a descriptive title. For the running example, use "Digital Tool Adoption Survey, 2026, De-identified".
3. Leave the storage provider at the default unless your institution runs its own OSF storage node.
4. Click "Create".

Expected result, OSF opens the project's main "Overview" page. The left sidebar lists the pages you will use most, including Files, Wiki, Registrations, and Analytics.

A common naming habit is to include the year and the sensitivity status of the project. When a tutorial author deposits simulated data alongside a statistical tutorial, the deposit is titled so that readers can find it from the paper itself, as in a Bayesian t-test tutorial whose simulated Excel-generated data were uploaded to OSF at osf.io/4t9gn [7]. Your title should serve the same function, connecting the paper to the project without ambiguity.

### Step 3. Add Components for Each Part of the Study

Components are sub-projects inside your main project. Each component has its own files, wiki, and privacy setting. Use them to separate things that have different audiences.

1. From the project page, click "Add component" or the plus icon.
2. Choose "Project" as the component type.
3. Create four components, named "Data", "Materials", "Analysis", and "Manuscript".

Expected result, the project overview now shows a hierarchical list with your four components indented under the main project.

Why this structure works. Reviewers usually need to see "Data" and "Analysis". Collaborators need "Manuscript". You can later make individual components public or keep them private without touching the rest. Projects that skip components tend to become a single flat pile of files, which is the structure readers complain about most.

### Step 4. Upload Files

1. Click "Files" in the left sidebar.
2. Select the project or component where the files belong.
3. Click the upload icon, then drag files from your computer or browse to them.

For the running example, upload the following inside the "Data" component.

```
data/
    raw/
        survey_raw_2026-03.csv
    clean/
        survey_clean_2026-04.csv
    docs/
        data_dictionary.csv
        README.txt
materials/
    questionnaire_v2.pdf
    consent_form_template.pdf
analysis/
    analysis_01_descriptives.R
    analysis_02_models.R
manuscript/
    draft_v3.docx
```

A practical rule is to version filenames rather than overwrite them. The transformer-models tutorial cited above distributes its code as a documented archive so that readers get one complete, labeled version rather than a moving target [2]. Filename versioning gives you the same property inside OSF.

### Step 5. Write the Wiki and README

The wiki is the front door of your project. Most visitors read it first or leave.

1. Click "Wiki" in the sidebar.
2. Paste a short README into the home wiki page.

A skeleton you can adapt:

```
# Study title

One-sentence description of the study.

## Contents
- Data/clean: de-identified dataset used in the paper
- Materials: questionnaire and consent form template
- Analysis: R scripts, run in order, numbered

## How to reproduce
1. Download the full project as a zip file
2. Open analysis_01_descriptives.R in R
3. Scripts read data from ../data/clean/, so keep the folder structure

## Citation
If you reuse these data, cite the project DOI listed on the project page.

## Contact
Corresponding author, [name and email]
```

3. Click "Save".

Expected result, the wiki home page shows your formatted text. Add one wiki page per component if the component needs its own explanation, for example a page describing each column of the dataset inside the "Data" component.

### Step 6. Add Collaborators

1. Click the gear or "Settings" area of the project, then choose "Collaborators" or use the "Share" control on the project page.
2. Search for collaborators by name or OSF account email.
3. Assign permissions. Read access lets a person view private content. Write access lets them upload and edit. Admin access lets them change settings and make the project public.

Expected result, each collaborator appears in the contributor list with their permission level. Contributor order matters, because the order shown on the project page is what a generated citation will use.

### Step 7. Control Access with View-Only Links

A view-only link shares a private project with specific people, such as peer reviewers or an editor, without making the project public. This solves the most common pre-publication problem, journals that want to see your data while your project remains private.

1. In project settings, find "View-only links".
2. Create a link, optionally scoped to specific components so reviewers see only what they need.
3. Copy the link and send it in your response to the journal.

Expected result, anyone with the link can read the private project. They cannot edit. You can anonymize the view-only link for blind review so that contributor names are hidden.

Practical tip from real workflows, when a validated, reproducible [qualitative analysis](/blog/guides/qualitative-data-analysis-coding-theming-and-interpretation) pipeline was published with structured prompts and traceable outputs, the point of the public deposit was that a reviewer could verify the link between themes and source data [8]. A view-only link during review, followed by a public release at acceptance, gives reviewers that same ability while respecting embargo norms.

### Step 8. Make the Project Public

1. Open project settings.
2. Set visibility to "Public".
3. Choose a license. OSF offers several open licenses, and the choice is yours as the contributor, so pick the one your institution and data permit.
4. Confirm.

Expected result, the project gets a persistent OSF identifier, a short URL of the form osf.io/xxxxx, and it appears in OSF search. Public projects can be found and cited by others.

Check that the result is right before announcing it. Open a private browser window, paste the public project URL, and confirm that every file you intended to share is visible and that no private files, such as raw identifiable data or a draft under embargo, leaked into a public component. Check the contributor list for people who did not consent to be listed.

### Step 9. Create a Registration

A registration takes a frozen, timestamped snapshot of a project at a moment in time. After registration, the snapshot cannot be edited. Two common uses exist, preregistering a study plan before data collection, and registering the final state of a project at publication.

1. Click "Registrations" in the sidebar.
2. Choose "New registration" and select the components to include.
3. Pick a registration form. Options range from a minimal snapshot to structured preregistration forms with prompted questions about hypotheses, methods, and analysis plans.
4. Choose whether the registration is public immediately or embargoed for a defined period.
5. Confirm. OSF processes the registration and issues a separate identifier for it.

Expected result, the registration appears under the Registrations tab with its own timestamp and identifier. The live project can keep changing, but the registration stays fixed.

A published example illustrates why this matters. A tutorial on developing and testing multinomial processing tree models ties its published paper to a fixed OSF deposit, so that every reader of the paper sees the exact scripts and data the authors used, unchanged [1]. The registration guarantees that no one, including the original authors, can quietly alter the record later.

### Step 10. Get a DOI and Connect Add-Ons

For a citable, persistent identifier beyond the OSF URL, create a registration and mint a DOI through the registration workflow. OSF supports DOI creation for public registrations, and the DOI resolves both to the registration and to the project.

For code-heavy projects, connect GitHub as an add-on.

1. In project settings, choose "Select add-ons" or "Connections".
2. Select GitHub and authorize your account.
3. Choose the repository to connect, then choose which branch OSF should mirror.

Expected result, the GitHub files appear under a GitHub folder in your project's Files list. When you push commits to the connected branch, OSF mirrors them. This pattern suits research code especially well, since a ready-to-use data collection tool with a fully documented interactive Python notebook was distributed via a public GitHub repository, the kind of artifact that pairs naturally with an OSF project describing the study around it [9].

## A Worked Example: How Published Tutorials Structure Their OSF Deposits

Looking at real deposits is the fastest way to learn what "good" looks like.

- A Bayesian independent t-test tutorial for nursing researchers uploaded simulated data to OSF at osf.io/4t9gn so readers could reproduce the analysis in JASP themselves [7].
- A transformer-model tutorial for depression trajectory analysis mirrored its full documented analysis archive on OSF at osf.io/mj8nh in addition to journal supplemental files [2].
- An ordinal regression tutorial placed its simulation code, custom R functions, and additional model examples at osf.io/93h5j [3].
- A multinomial processing tree tutorial provided annotated analysis scripts and all example data at osf.io/24pbm [1].

Notice the shared pattern. Each deposit exists because the paper promises reproducibility, each deposit contains everything needed to run the analysis, and each has a short, stable identifier that the paper cites. Your project should aim for the same three properties whether your study is a survey, a wet lab experiment, or a computational model.

Large open-source modeling frameworks follow the same logic at bigger scale. An open-source discrete-event simulation pipeline for cancer interventions bundles a flexible model, Bayesian calibration, and an example application into one reproducible codebase so that decision modelers can extend rather than rebuild it [10]. The unit of sharing changed, from one paper's files to an entire framework, but the OSF-style principle of complete, self-describing deposits holds.

## Common Mistakes and Limitations

![Decision path asking whether data are de-identified, consent allows sharing and a manuscript is embargoed before publishing.](/article-images/illustrations/open-science-framework-tutorial-share-or-restrict.webp)

The following mistakes account for most OSF problems reported by authors during review and after publication.

- Uploading identifiable human data. De-identify before upload, and if the data cannot be safely de-identified, share a controlled-access or summarized version instead. A large survey dataset of academics' research-sharing behavior was deposited only after de-identification, with the questionnaire supplied separately as extended data [4]. Follow that example.
- No README or data dictionary. A dataset without a column-by-column dictionary is functionally unusable to outsiders, even if the CSV opens fine.
- Flat file dumps. Forty loose files with names like final_final2.xlsx forces every reader to guess the workflow. Use components and numbered scripts.
- Registrations treated as editable. A registration is immutable by design. If you need to correct an error after registration, create a new registration and explain the change, rather than expecting the old snapshot to update.
- Mixing embargoed and shareable content in one component. If your manuscript is under embargo, keep it in a private component and make only the data and code public.
- Forgetting contributor order and consent. The displayed order feeds auto-generated citations. Confirm that everyone listed agrees to be listed before going public.
- Assuming OSF is a long-term preservation archive in the same category as curated disciplinary repositories. It is a flexible project platform. For datasets whose primary requirement is long-term curation in a field-standard format, a disciplinary repository may serve better.
- Ignoring licensing. A public project without a license is legally ambiguous for reuse. Pick an explicit license at the moment you go public.
- Treating OSF as a substitute for version control. OSF file uploads are not a replacement for Git history. Develop code in Git, mirror to OSF, and tag releases.

One limitation belongs in its own sentence. Sharing platforms do not absolve you of judgment about human subjects protections, institutional review board requirements, and data use agreements, which you must satisfy before any file leaves your control.

## Frequently Asked Questions

### Is OSF free to use?

Yes, OSF is free for researchers and provides public and private project storage at no cost, supported by the Center for Open Science.

### Can I keep my project private on OSF?

Yes, projects are private by default, and you can keep components private while making only selected parts public.

### How do I share my data with peer reviewers before publication?

Create a view-only link scoped to the relevant components and send it to the editor, which lets reviewers read your private project without making it public.

### What exactly is a registration?

A registration is a frozen, timestamped, uneditable snapshot of a project, used either to preregister a study plan or to preserve the final state of a project at publication.

### Does OSF issue a DOI for my project?

Yes, public registrations on OSF can receive a persistent DOI that makes the deposited work citable in papers and CVs.

### How does OSF compare with GitHub or Zenodo?

GitHub excels at collaborative code development, Zenodo-style archives excel at minting DOIs for final releases, and OSF works best as the umbrella project tying data, code, materials, and documentation together.

### Can I upload human subjects data to OSF?

Only if the data are properly de-identified and your ethics approval and consent agreements permit public sharing, otherwise use restricted access or share summarized data.

### Is there a file size limit on OSF?

Yes, individual file uploads have size limits, so very large datasets such as imaging archives are better split, compressed, or deposited in a disciplinary repository with a link from your OSF project.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Is OSF free to use?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, OSF is free for researchers and provides public and private project storage at no cost, supported by the Center for Open Science."
      }
    },
    {
      "@type": "Question",
      "name": "Can I keep my project private on OSF?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, projects are private by default, and you can keep components private while making only selected parts public."
      }
    },
    {
      "@type": "Question",
      "name": "How do I share my data with peer reviewers before publication?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Create a view-only link scoped to the relevant components and send it to the editor, which lets reviewers read your private project without making it public."
      }
    },
    {
      "@type": "Question",
      "name": "What exactly is a registration?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A registration is a frozen, timestamped, uneditable snapshot of a project, used either to preregister a study plan or to preserve the final state of a project at publication."
      }
    },
    {
      "@type": "Question",
      "name": "Does OSF issue a DOI for my project?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, public registrations on OSF can receive a persistent DOI that makes the deposited work citable in papers and CVs."
      }
    },
    {
      "@type": "Question",
      "name": "How does OSF compare with GitHub or Zenodo?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "GitHub excels at collaborative code development, Zenodo-style archives excel at minting DOIs for final releases, and OSF works best as the umbrella project tying data, code, materials, and documentation together."
      }
    },
    {
      "@type": "Question",
      "name": "Can I upload human subjects data to OSF?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Only if the data are properly de-identified and your ethics approval and consent agreements permit public sharing, otherwise use restricted access or share summarized data."
      }
    },
    {
      "@type": "Question",
      "name": "Is there a file size limit on OSF?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, individual file uploads have size limits, so very large datasets such as imaging archives are better split, compressed, or deposited in a disciplinary repository with a link from your OSF project."
      }
    }
  ]
}
</script>

## Sources

1. [How to develop, test, and extend multinomial processing tree models: A tutorial.](https://pubmed.ncbi.nlm.nih.gov/37498691/)
2. [Applying transformer models to psychological time-series data: A step-by-step tutorial with an empirical illustration of depression trajectories.](https://pubmed.ncbi.nlm.nih.gov/41182776/)
3. [Ordinal regression models made easy: A tutorial on parameter interpretation, data simulation and power analysis.](https://pubmed.ncbi.nlm.nih.gov/39354666/)
4. [Dataset of the adoption of digital tools for research sharing among academics in African Varsities during the COVID-19 pandemic in 2020.](https://pubmed.ncbi.nlm.nih.gov/35529275/)
5. [The C-BIG Repository: an Institution-Level Open Science Platform.](https://pubmed.ncbi.nlm.nih.gov/34003431/)
6. [Beyond Traditional Publishing: Social Media as a Catalyst for Biomedical Research Dissemination and Collaboration.](https://pubmed.ncbi.nlm.nih.gov/40329892/)
7. [A Tutorial on Conducting and Interpreting a Bayesian Independent T-Test Using Open-Source Software.](https://pubmed.ncbi.nlm.nih.gov/40755145/)
8. [Human-in-the-loop LLM-assisted thematic analysis: A validated, reproducible tutorial for large-scale qualitative research.](https://pubmed.ncbi.nlm.nih.gov/42897414/)
9. [Collecting data from YouTube using the official API: A tutorial and a ready-to-use tool.](https://pubmed.ncbi.nlm.nih.gov/42458152/)
10. [Discrete-Event Simulation Modeling Framework for Cancer Interventions and Population Health in R (DESCIPHR): An Open-Source Pipeline.](https://pubmed.ncbi.nlm.nih.gov/41575713/)