Skip to content

Open Bases

An open base template is a combination of components, including experiment templates, testing tools, and deployment options to produce a partial or full reproducible workflow. A high level might look like this:

develop --> version control --> build --> test --> deploy --> submission

Given that you have a contribution, meaning something you are developing like an experiment, and your goal is submission, coinciding with a set of steps that get you from the start of your work to a tested, version controlled, reproducible submission, that's the job of the open bases. An open base can also be as simple as sharing a rendered paper pdf in a Github repository programmatically, to creating an API for a set of images. It's just a Github repository template that you can fork and customize for your need.

How do I know what base to use?

The easiest thing to do is read the description of the base type, and then follow the Github Link and look at the content in the repository and Github Pages. If you think "That's what I'd like to have for my repository!" then you've found a match, and can proceed following the instructions in the provided by the repository.

Base Types

These base types can coincide with either a full template to achieve some goal, or a component that is a step within. The groupings below are tags to describe what the base is or does, and you might see them as the prefix for Github repository names (e.g. experiment-stroop) or as badges in a template repository to describe the content.


"Specification" refers to a language, ontology, or some other definition that might be used in open science. A good example is a tool to work with, generate, or otherwise interact with

Name Badge Repository Description Preview
spec-template openschemas/spec-template easily generate specification spec-container


An "extractor" refers to a template that can be used (possibly in combination with a specification) to extract and represent some set of metadata from an object. For example, the openbases/extract-dockerfile has an example CircleCI setup to build and extract metadata from a Dockerfile (container recipe).

Name Badge Repository Description
extract-dockerfile openbases/extract-dockerfile extractor for Dockerfile


"Paper" refers to something like a PDF or other rendered content that might be used in a submission. Examples are PDFs, markdown content, or articles. Each of the following is a paper builder template, typically including steps to generate and serve a manuscript or similar. These bases might assist with generating a submission, but may not be intended for it. You will want to use one of these bases if you want a PDF to build from a Github repository, and then render beautifully on Github Pages.

Name Badge Repository Description Preview
Paper Builder openbases/builder-pdf Generate PDF from markdown gh-pages


Submission open bases typically consist of a set of steps (components) that get you from something you are developing to a programmatic paper submission. This might mean generating a container for your content, running an analysis, and then testing and submitting data and/or a manuscript.

Name Badge Description
Journal Open Source Software validate and preview your paper


refers to software used within a base, such as LabJS or JSPsych for an experiment. These categories are shown here and used as tags, but aren't common to be found as openbases repositories. They are commonly other open source software.

Name Badge Repository Description
LabJS FelixHenninger/lab.js generate experiments
JSPsych jspsych/jsPsych generate experiments
Expfactory expfactory/expfactory deploy experiments


"Experiment" typically refers to a web based experiment, meaning some static content that can be dropped on a web server to collect data.

Name Badge Repository
Experiment Factory Library expfactory/experiments
Survey Generator expfactory/survey-generator


Name Badge Repository Description
Icons openbases/openbases-icons static image API


functions or software for continuous integration (or similar) testing purposes. For example, for experiments, we have robots to test static and runtime web-based experiments.

Name Badge Repository Description
Expfactory Robots expfactory/expfactory-robots Automated web browser


A special base type for any kind of template that is for open bases developers. For examples, the openbases-jekyll-theme can be easily dropped in a Github "docs" folder to render documentation for a new component repository, and builder-whedon is the builder for the actual openbases/builder-whedon container to drive other components.

Name Badge Repository Description
Open Bases PDF Builder openbases/openbases-pdf PDF Builder Base
Open Bases Python openbases/openbases-python Python API for Open Bases
Open Bases Jekyll Theme openbases/openbases-jekyll-theme "docs" folder for Github Pages

Data Archive

are components to help with archive of data.

Name Repository Docs
Docker Hub
Github Pages