Hacker News new | past | comments | ask | show | jobs | submit login
Launch HN: Curvenote (YC W21) – Collaborative writing tools for science
108 points by rowanc1 on May 24, 2021 | hide | past | favorite | 26 comments
Hi HN! I’m Rowan and with my co-founder Steve we are building Curvenote (https://curvenote.com) — a technical writing tool for sharing data analysis and research from Jupyter with a wider audience.

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-source article editor, about explorable explanations, and would love to hear if some of the challenges we have faced around collaboration in data science/research resonate with you?

[1] https://curvenote.com/@simpeg/meeting-notes/2021-02-24

[2] https://curvenote.com/@stevejpurves/computational-finance/mo...

[3] https://curvenote.com/@lheagy/pixels-and-their-neighbours/pi...

[4] https://curvenote.com/@geosci/inversion-module/inverse-theor...

[5] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

[6] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

[7] Editor demo here without signing up: https://curvenote.github.io/editor/

[8] https://slack.curvenote.dev




This looks really interesting. I'm always happy to see new collaboration tools. Also, anything that moves us away from TeX is a win.

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".


I have also seen a lot of that sort of file-naming-version-control still in use. Git is really far out of reach for most people, and IMO not always the most appropriate for writing workflows where the version control sort of lives at the paragraph/figure/equation level.

Word export (and hopefully good import as well) is certainly on our roadmap. :)


This is a novel idea. Congrats on the launch!

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.


(Overleaf co-founder here.) Thanks for the feedback --- I'd be happy to hear more about what you would like to see improved, either here or via email (in my profile).

And to the curvenote team: Congrats on launching here! Happy to chat about collaborative scientific writing any time :)


Thanks John - I did not expect this comment :)

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. :)


Thanks for taking the time to write this up! Strong agree on better file switching --- also high on my list. I've passed this feedback on to the team.


Thanks! I would love to chat about collaborative scientific writing! I will send you an email following up. :)


In Curvenote's editor you collaborate on the content as you would in something like google docs, without needing to write Latex -- but with the features you'd reach to Latex for; equations, figures, citations, cross referencing etc...

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.


Very cool. I signed up and uploaded a notebook and was impressed with the stylesheet and presentation. Right out of the box, you're making the notebook output seem more like an article that someone might want to read (less distrinction between code blocks and markdown blocks).

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!


Thanks! The ability to copy/reference code and figures from a notebook to multiple other articles/notes and have comments and updates between all the places you reference a Block is something that is really handy when researching and collaborating.

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 ... !


My suggestion for published scientific papers would be to introduce a cryptographic hash to ensure forever integrity of the related data.

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.


That is where we are headed for sure - our version control allows very granular addressing of content (i.e. an equation or figure). We haven't quite got to the hashing stage yet, because we aren't quite sure what all fits in the content, is the author, date, license also hashed in there? Also right now the way we store our content is still evolving pretty fast as it is more than just a text file etc. that we are storing.

Would love other pointers/thoughts if you have them.

I think this is a really powerful feature for sure.


I love the idea behind this, and it seems like the right way. The strongest point seems to be that anything written with this can be directly verified - if I think that a table might have miscalculations, I can just go check it.

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


yes, version control is baked in so once you save a version of an article or notebook the blocks are immediately reference-able, so if you use that table in your paper, its still linked to the same block/cell in the notebook and has a unique hash allowing referencing / lookup via our API and its easy to save new versions.

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


When you look at a copy of Nature and you look at Bret Victor’s work it’s so clear that scientific publishing needs a massive massive upgrade.


Bret's work is inspiring and we're at a point where we have the media and tech available to make that massive upgrade.

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.


Somewhat ironically, this kind of thing was what Tim Berners-Lee originally created the Worldwide Web to do. Obviously Curvenote is much more advanced, and meanwhile the web has become something more than Tim had imagined.


Completely agree - a lot of what we are trying to do is surface these ideas, especially around editing of content not just viewing it.

You might be interested in some of his recent work: https://inrupt.com/solid which has some similar flavours to Curvenote.


Also, sorry for the double post, but how large do you see the collaboration requirements of academia? Is there a lot currently or is this something you are trying to change with a lower friction solution?

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!


I think that the collaboration workflows in academia could use some improvements for sure! A lot of the challenges I saw were around multi-disciplinary work, where the collaboration was necessary - but pretty limited. Curvenote is aiming to improve that with lower friction tools, as well as trying to influence the "size" of what can be/is shared.

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".


With that price tag I don't see a lot of appeal for most people in Academia outside really big, rich labs in US and maybe UK.

Good luck anyway


Thanks, over time in academia we would like to move our pricing towards departments or institutions paying, so our pricing model will likely evolve with that shift. Right now Curvenote is free for public projects (and one private one!) - and a similar price point to Overleaf (currently $17-$34/mo).


This is very cool... now I just need to figure out how/whether I can use it internally to get around our data security issues


Happy to be in touch to hear more about your workflows. We do have custom deployments of Curvenote (e.g. private cloud) on our roadmap! Let me know if you want to hear more <rowan@curvenote.com>.


What is Jupyter - is it like Matlab?

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


Lots of similarities between Jupyter and Matlab. Jupyter is open source (jupyter.org) and is great for exploratory data analysis and integrating documentation/thought process with markdown. We are helping link that environment into your other notes, and keep track of reproducibility as you create a document or article.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: