Open Research Data

GitHub Template for FAIR and Open Research Data

Transforming research documentation from static afterthought into living, executable environments.

This template provides an infrastructure for documenting, publishing, and archiving research data in line with the principles of FAIR and open science. It is independent of data type or format and implements best practices as outlined in The Turing Way. Core components include automated release management, integrated archiving with Zenodo, structured documentation via Quarto, and long-term accessibility through GitHub Pages.

GitHub issues GitHub forks GitHub stars Code license Data license

🤝 Academic Recognition

This approach was presented at the Digital Humanities Tech Symposium (DHTech) 2025 and exemplifies how reusable templates can address persistent challenges in research data management.

Mähr, M., & Twente, M. (2025). One Template to Rule Them All: Interactive Research Data Documentation with Quarto. Digital Humanities Tech Symposium, NOVA University Lisbon. https://maehr.github.io/one-template-to-rule-them-all/.

Why use a template (even for small datasets)?

Conventional data publication as static supplementary files offers limited reproducibility and reusability. This template extends such practices by providing:

  • 📊 Executable narratives that embed code outputs directly into documentation
  • 🚀 Automated deployment and testing that reduces technical overhead
  • 🏛️ Integrated archiving with DOI through seamless Zenodo integration
  • 📈 Scalability and consistency across diverse project types and domains
  • 🔒 Enhanced security with automated vulnerability monitoring
  • 🤝 Community standards following accepted ethics and collaboration practices

Features

Open Research Data

Documentation

Consistency

Security

Ethics

Selected Use Cases

The template has been applied across domains including public history, political science, digital humanities, and teaching infrastructures.

🔬 Research Data Documentation

Project Preview
Stadt.Geschichte.Basel RDM
Project documentation platform combining research data management with public history outreach
sgb-figures
Reproducible code and annotated data for publication-ready visualisations of research data

📊 Reproducible Research Workflows

Project Preview
nordatlantisk-ft
Voting records from the parliament of Denmark with complete data scraping and analysis pipeline
maxvogt-analysis
Multi-step data compilation workflow documentation
Modelling Marti
Topic modeling project with interactive visualizations and multimedia content as narrative elements

🎓 Academic Events & Teaching

Project Preview
Digital History Switzerland 2024
Conference website with program, abstracts, and participant information
Digital Humanities Bern
Department hub featuring news, events, and course information
Decoding Inequality 2025
University course website with syllabus and materials

📚 Living Publications & Handbooks

Project Preview
Non-discriminatory Metadata
Comprehensive handbook that functions as both documentation and scholarly publication
One Template to Rule Them All
This repository’s own presentation site, demonstrating meta-application

Installation

We recommend using GitHub Codespaces for a reproducible setup.

Getting Started

For Most Users: Reproducible Setup with GitHub Codespaces

  1. Use this template for your project in a new repository on your GitHub account.

    Use the repository

  2. Click the green <> Code button at the top right of this repository.

  3. Select the “Codespaces” tab and click “Create codespace on main. GitHub will now build a container that includes:

    • ✅ Node.js (via npm)
    • ✅ Python with uv
    • ✅ R with renv
    • ✅ Quarto

    Create Codespace

  4. Once the Codespace is ready, open a terminal and preview the documentation:

    uv run quarto preview

    Terminal window showing command

Note: All dependencies (Node.js, Python, R, Quarto) are pre-installed in the Codespace.

👩‍💻 Advanced Local Installation

Prerequisites

Note: uv installs and manages the correct Python version automatically.

Local Setup Steps

# 1. Install Node.js dependencies
npm install
npm run prepare

# 2. Setup Python environment
uv sync

# 3. Setup R environment
Rscript -e 'install.packages("renv"); renv::restore()'

# 4. Preview documentation
uv run quarto preview

Project Setup

After creating your project from this template (either via Codespaces or local setup), follow the comprehensive checklist in TODO.md to customize and finalize your project. The checklist includes essential setup tasks, optional enhancements, and verification steps to ensure your research data repository is properly configured.

Use

Check that all files are properly formatted.

npm run check

Format all files.

npm run format

Run the wizard to write meaningful commit messages.

npm run commit

Run the wizard to create a CHANGELOG.md.

npm run changelog

Preview the documentation.

quarto preview

Support

This project is maintained by @maehr. Please understand that we can’t provide individual support via email. We also believe that help is much more valuable when it’s shared publicly, so more people can benefit from it.

Type Platforms
🚨 Bug Reports GitHub Issue Tracker
📊 Report bad data GitHub Issue Tracker
📚 Docs Issue GitHub Issue Tracker
🎁 Feature Requests GitHub Issue Tracker
🛡 Report a security vulnerability See SECURITY.md
💬 General Questions GitHub Discussions

Roadmap

There are currently no changes planned.

Contributing

Please see CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

Authors and credits

  • Moritz Mähr - Initial work - maehr
  • Moritz Twente - Enhancements - mtwente

See also the list of contributors who contributed to this project.

License

The data in this repository is released under the Creative Commons Attribution 4.0 International (CC BY 4.0) License - see the LICENSE-CCBY file for details. By using this data, you agree to give appropriate credit to the original author(s) and to indicate if any modifications have been made.

The code in this repository is released under the GNU Affero General Public License v3.0 - see the LICENSE-AGPL file for details. By using this code, you agree to make any modifications available under the same license.

Back to top