Nextjournal is a web-based coding, writing and publishing tool for researchers, journalists and programmers — or anyone working with code-driven explanations.
Sharing and reusing articles in Nextjournal is quick and painless. Write programming tutorials, data science reports or scientific research. Every article on Nextjournal is immediately runnable and reusable in the browser.
See how it works in this four minute demo, or jump right in and remix one of our published articles.
We built Nextjournal to answer Bret Victor’s call to action: build better tools for sharing, exploring and reusing scientific knowledge.
Today, most research relies on code — to generate results, graphs, or automate complex tasks like train neural networks. Sharing and reusing code is difficult today — especially for code with complex software or hardware requirements. Software dependencies constantly change. Setting up GPU-enabled servers requires a whole new skill set. Tutorials, code snippets and libraries collapse as their foundations crumble underneath.
Despite that, we hear a lot of talk about the importance of reproducible research. But today’s tools — version control systems or self-service notebook environments — only solve part of the problem.
We believe the solution lies in two simple but powerful approaches: capture as much state as possible at all levels of the software stack, and execute code reactively.
A Nextjournal article captures and immutably stores the state of data inputs, code changes, results, the underlying filesystem, and even a running process’s state. Code is run reactively — code only needs to run when its dependencies change. While this speeds up the coding workflow, it also opens the door to new patterns of code reuse.
We built Nextjournal on these functional programming concepts, joining the growing list of tools applying them to everything from databases to distributed filesystems. In upcoming posts, we’ll explain how Nextjournal works in more detail.
We can help you port your work to Nextjournal. Need support for a specific technique, library or language? Get in touch!