Nextjournal automates the practical issues faced by researchers and data scientists so you can focus on your work.
Technology was supposed to make your job easier. But if you've found yourself spending hours building notebooks, managing dependencies, setting up cloud storage, perplexed by version control, configuring containers, resourcing GPUs, and hunting for software solutions for each new problem, then you need Nextjournal.
Read on to find out more. If you're already working in Jupyter and want to see for yourself, importing your notebook into Nextjournal is easy.
Stop wasting time on setup...
... and start one with a click. Nextjournal offers single-click defaults for Python, R, Julia, and Clojure. Create a notebook by selecting a language to get started. These defaults offer more than a language runtime, they all include typical data science tools out of the box. For most projects, there is absolutely no installation required.
Sharing is hard...
... but it doesn't have to be. Nextjournal automatically creates totally reproducible notebooks without a second thought from the user. This makes sharing as easy as sending a URL to a peer.
Code must be run in the same execution environment to guarantee the same results. Nextjournal locks dependencies all the way down to the operating system. Anything less creates brittle software that is difficult to run on other computers and risky to upgrade.
The result: media rich, interactive notebooks that can be fully indexed by search engines and effortlessly run anywhere in the world.
Don't worry about making changes...
... experiment! Nextjournal makes time travel easy by offering version control across the entire stack - from your code to the input data, from execution results to the dependences. If you break something, simply travel back to the last relevant point in time. There are no commits or save points. You just focus on moving forward with your work.
- The dependency stack is stored as an image in our Docker registry. Experiment knowing you can always rewind to a previous configuration and rest assured that you can download your custom Docker image at any point in the future.
- Both uploaded data and results generated by a Nextjournal notebook are kept as content-addressable storage, ensuring unique data are never overwritten.
- The notebook's prose and code are stored using Datomic, an immutable database.
No need to learn Git or any other Version Control System. No need to learn Docker or any other containerization software. It all happens automatically!
Multiple dependency stacks? Multiple language runtimes?
Easily compose environments to create notebooks that support multiple Python stacks or language combinations like R+Python or Clojure+Julia. Notebooks can also import environments from other notebooks. Imported environments can be modified without changing the original, which makes sharing custom defaults simple and experimentation risk-free.
Walls make collaboration difficult.
Nextjournal doesn't have the same boundaries as traditional code repositories or Jupyter notebooks. Collaboration is made easy because composability is a core aspect of Nextjournal's design.
Build an environment in one notebook and import it in another. Send the notebook to a peer and they can remix results with a click of a button - immediately writing additional code and running different data sets. Experiment by adding a new environment that runs in parallel. No dependency management required. No clashing versions of Python. Run bash commands to perfect the new environment. Export the environment and use it as a default for others within your group - they don't have to configure a new notebook, they just get to work.
Some of the most powerful features of Nextjournal are invisible to the user. To learn more about how the promise of full-stack reproducibility enables experimentation and sharing, read the introduction to environments and the introduction to remixing. If you'd like to try it yourself, get in touch for Private Beta access.