Launch HN: Curvenote (YC W21) – Collaborative writing tools for science
We are building Curvenote to get science communication out of PDFs and help researchers and data-scientists communicate interactive, reproducible results (graphs, figures, maps, etc.) that are linked to the actual data and computation. There are currently two parts to Curvenote: 1) a WYSIWYG collaborative writing environment for interactive, technical documents; and 2) a Jupyter integration that adds version control and commenting and can link interactive plots and outputs directly into Curvenote documents (including any new versions or comments on those outputs).
Steve and I met in the open-source/science community and are coming at this from different angles: Steve has led data science teams, and keeping stakeholders and team members in the loop with up-to-date figures/reports took a lot of time (via emails, screenshots, PPT presentations, customer reports, etc.) — leading to what he calls communication chaos. A lot of my experience is coming from writing a PhD thesis, writing papers, presenting early research to colleagues/supervisors, and developing educational/training material around open-source projects.
In both our experiences, there is a collaboration gap between working on data science (for us in Jupyter) and getting feedback or enabling other people on our teams to remix the work, add context or ask questions. We each had a lot of hacked-together solutions, that mostly cut out anyone who wasn’t comfortable in git or Jupyter. Curvenote aims to span this gap by providing tools that enable less technical (or busier) collaborators as well as integrations into anywhere Jupyter lives (e.g. AWS Sagemaker, JupyterHub, locally). We are aiming for the collaboration experience of Google Docs, the precise presentation of LaTeX, and first class integrations into computational notebooks - without changing data science tools.
The weaving of computational results into documents and keeping all the links pointing back to your Jupyter notebook cells starts to build an interconnected knowledge graph (similar to Notion or what Roam are doing for personal knowledge databases) — with a heavy focus on research, where ideas, equations, figures, code can be browsed, filtered and discovered. This starts to become a “web of science” — with very granular ways to address and remix content across projects. I get really excited about this. A lot of content I was producing during my PhD was shared between various presentations/reports as I developed ideas over many years; I wanted to see how the ideas were linked together and allow other people (and myself!) to reuse parts of the work with the same ease as importing a software library.
We are seeing people producing their lab-group meeting notes [1], writing reports that can be shared inside their companies [2], reproducing research papers [3], writing computational textbooks [4], and cross-importing data-science visualizations across projects. Curvenote has a free tier for public projects and we charge $15/user/month for teams.
Our other inspiration is coming from distill.pub [5] and explorable explanations [6]. We are trying to make it really easy to create and share these types of interactive documents and connect them to computational environments. A lot of the components underlying our platform are open-source (see https://curvenote.dev), including our editor which you can try without signing up [7]. We also have an active Slack community [8], with a broad user base: teachers, scientists, data scientists, data journalists. You're welcome to join!
Really excited to get some feedback from the HN community - happy to talk more on version control of Jupyter Notebooks, about our open-so...
26 comments
[ 5.4 ms ] story [ 72.6 ms ] threadGood luck anyway
When I hear collaborative writing, however, I think of OverLeaf, which tons of researchers I met use for writing LaTex collaboratively. Does Curvenote support Latex editing out of the box? How can you make them transition to your platform if their workflow isn't data heavy?
Btw - I personally am not very happy about OverLeaf. Its UX can be improved in various ways but seems lacking enough development support.
Documents can then be exported as a PDF which uses Latex for typesetting, currently that's with a default template, but we're working on user defined templates right now.
When people's workflow is not data heavy, we think there are other features making Curvenote an attractive place to work; the WYSIWYG style of writing, real-time comments and easy sharing on one hand but also how Curvenote helps you easily reuse, update and build on your existing content.
And to the curvenote team: Congrats on launching here! Happy to chat about collaborative scientific writing any time :)
The biggest complaint I have is: I couldn't navigate between different files using some keyboard shortcuts. The only way is to use mouse clicks, which can be quite slow and prone to errors. In modern IDEs you usually can bring up a file search box with hotkeys. The same goes for switching between PDF and tex.
Another thing bothering me is that the hot-key CMD+Enter for compiling doesn't always work. I couldn't figure out when it works and when it doesn't. When it doesn't, I again need to click on the compile button which is inefficient. I also sometimes use CMD+S, but that saves the entire webpage when the editor isn't in focus.
One other classic UI issue - the only way you can expand a folder in the left side bar is to click on the tiny little arrow. This is too inefficient. A much better way would be allowing folder expansion when I click on anywhere in the row containing that folder.
Despite these issues, I want to say a huge thanks for creating OverLeaf - without it it'd be much harder for me to get my degree. :)
Is your document format open source? IMO html / css is the best since it works everywhere (or nearly everywhere).
The idea DOES sound AMAZING. Could be a game changer. Wish you the best for it
Our document format/schema is open source, basically opinionated HTML, and the ability to translate between latex/markdown etc. (see https://curvenote.dev/editor for a demo of the editor, the schema is linked there as well).
Thanks - this is the tool I wanted doing research, that could help me out from group meeting notes all the way to the manuscripts, grants and papers I was writing.
Can definitely see it as a very good way to share results and raw data (esp as we go more and more into a big data world), sort of like github but for academic data!
Right now a lot of the sharing is done right at the end, with a large scientific paper - and that is when peer-review comes in. I like the analogy of github here - in the open-source software world, there is a lot more iterative sharing of smaller, in-progress work where the feedback from a colleague/peer has a lot of potential to influence and improve future work.
Curvenote can ideally help in tracking of the version-control/attribution around reusing and referencing work, and helping with collaboration along the way - rather than just at the "end".
The export to LaTeX is going to be a very interesting feature for me, since I can collaborate with colleagues using markdown, but ultimately export to LaTeX for final print version.
Good stuff!
A lot of times I have found that a notebook will have a different narrative than when you are referencing and talking about the work in other articles and books, etc. More of a focus on "why" rather than "how". Curvenote allows you to keep things linked together, with pretty minimal overhead.
Not requiring your colleagues to know LaTeX is a plus in a lot of collaborations, but still getting to that professional export at the end of the day! I was using a weird mashup of LaTeX in GoogleDocs for my thesis ... !
I think Word export will be a big deal in many scientific fields.
I've certainly found it hard to spread git to people who don't really need it's quite "heavy" workflow. Yet, Dropbox results in lots of files named "foo-Daves-version" or "paper-Jane-edit-21011201".
Word export (and hopefully good import as well) is certainly on our roadmap. :)
When you look at work like this, and also the work produced by distill.pub achieving it is beyond the reach of most researchers. Right now that means someone would need to custom build the experience -- html/web development skills required. One of our aims with Curvenote is to bring that within the reach of most researchers, making it easy to publish interactive content by default.
Do you have any plan of introducing templates? For example many Universities have templates with required formatting in latex/.docx, and being able to atleast have something like these would help a lot
We are introducing templates for sure. Word is on our roadmap but first up is to introduce LaTeX templates including user defined ones. We started mapping out the initial UI and we've got some ideas for how to allow public and community generated templates to be added to the system too, we went through these in a recent meetup, it's recorded so you can see more here => https://youtu.be/r46wN4KWPac?t=1024
You might be interested in some of his recent work: https://inrupt.com/solid which has some similar flavours to Curvenote.
I'm not sure if this would relate to what you are developing here though, because it seems you are aiming more at the pre-publication phase where people are actively changing things?
But if a hash were included in the text of the original published paper then - for example once it was in a printed journal -then it could not be changed.
The paper would not need to contain a hash for every piece of data. There could just be a single hash of a text file that itself is a list of hashes for each related data file.
Then the data that was used to write the paper would be crystallised forever and could not be retrospectively manipulated.
And it is a very simple concept. Anyone could later download the data files and check the hashes for themselves.
Would love other pointers/thoughts if you have them.
I think this is a really powerful feature for sure.