Living Research
A notebook runs. Its results publish to a page. The repo is the research. The page is a view of it.
The problem
- Papers freeze knowledge into static PDFs that can't be verified, updated, or rerun.
- Results sit behind paywalls while the code and data to reproduce them are missing.
- Peer review happens behind closed doors between two anonymous reviewers.
- By the time a paper is published, the field has already moved on.
- In a 2016 Nature survey, over 70% of 1,576 scientists reported failing to reproduce another researcher's experiments.
How it works
- Notebooks are the primary artifact. Code, analysis, and explanation live together. Click a badge, run the full pipeline in Colab.
- Results publish back to the repo. A publish cell commits outputs and findings data. GitHub Pages deploys the updated page.
- CI validates, it doesn't produce. Workflows confirm notebooks still execute. The notebook is the source of truth, not CI.
- Git history is the intellectual record. Every commit traces how thinking evolved. Every contributor is attributed.
- Contributions happen through issues and PRs. Transparent, attributable, open.
living-research/template ├── notebooks/ # Jupyter notebooks — run end-to-end ├── scripts/ # utilities (Colab publish flow) ├── data/ │ ├── raw/ # immutable source data │ └── processed/ # derived data, regenerated ├── results/ # outputs: plots, models ├── docs/ # findings page → GitHub Pages │ └── data/ # data the page reads at runtime └── .github/workflows/ # CI validates notebooks
Principles
- Reproducibility by default. If it can't rerun, it's not research.
- Living, not frozen. New data? Update the notebook. Found a flaw? Open an issue. Knowledge evolves.
- Show the work. Dead ends, pivots, negative results. The history is as valuable as the conclusion.
- Credit through contribution. Git tracks who did what. No ambiguous author lists.
The published page is a view of the research. The repo is the research.