Today, even the most modern writing tools are designed around typing in words, not facts. These tools are suitable for promoting preconceived ideas, but provide no help in ensuring that words reflect reality, or any plausible model of reality. They encourage authors to fool themselves, and fool others. — Bret Victor on technology’s role in climate change
Bret Victor’s inspired us to enable a better breed of research article: interactive, reproducible, web-based documents that argue from evidence.
Research can benefit from a similar focus on its core needs. But science needs more: data, code, prose and illustrations must live together to effectively communicate ideas. Results should be reproducible by nature — not as an afterthought.
Bold steps have been taken down this path: Authorea and Overleaf pioneered collaborative science writing, and the open source Jupyter Project is our direct inspiration for how an interactive programming environment enables exploration and reproducible research.
We’re building on these ideas with a focus on clarity, beauty, reproducible results and reusable data models. The Nextjournal Editor is the first step.
Writing prose is intentionally simple: write with paragraphs, headings, links, bold and italics.
Coding happens in cells: independent execution environments running on our servers that produce visible line-by-line results. Cells can reference variables from other cells. To prevent stale results, cells re-execute when their dependencies change.
Uploaded files are available in every code cell.
Generating graphs from data is supported using the Plot.ly API for Python or Julia.
Here’s what we’re working on next:
- Inline references: embed live, calculated results in your writing
- Custom execution environments: extend our Docker images to support custom software packages and add statements that apply to all code cells.
- Nextjournal for teams: work with your peers on the same documents, with a full history of changes and who made them.
- Citations: add clickable notes and citations to articles.
- Equations: embed equations via Mathquill.
- Automation: run and track progress of lengthy simulations.
- Reusable data models: teammates or peers run your code with different data in different articles.
Contact us at firstname.lastname@example.org. We’d love to hear your thoughts and learn about your team’s needs!