over the past few months me and my team have been working on Nuclino, a lightweight real-time wiki for teams. The whole editor experience is built on top of ProseMirror, which is why I’m happy to share it here!
It’s still a preview release, but we’ve been testing it with a few teams and it’s been working nicely so far. We’d be happy to get more feedback, so check it out if you’re interested.
Most wikis provide a way to export a static website, which is what we use to convert existing content to the ProseMirror document model (using the HTML parser). We are currently doing this for DokuWiki and Confluence content, which works well. We implemented some preprocessing which modifies some of the HTML produced from those wikis (e.g. clean up whitespace, convert todo lists, etc.) using the cheerio library.
I’ve been putting in some time over the last year and a half to think about the next generation of semantically-connected discussions and knowledge stores.
Here are some ideas that might be of interest:
On the back-end, break down the text in to separately-stored sections, connected to the main document
This frees ideas, quotes, and snippets from being locked in a single document
Make relationships a first-class citizen
As we enter the semantic web, there’s going to be more and more ability to see the connections between different solutions (for example knowledge that experts have internalized so deeply, that they don’t even notice it any more), and it’s going to be powerful to have tools that speak this natively.
Feel free to reach out - I like Nuclino’s style and vision.
It’s interesting that you mention this approach as I’ve been thinking about something similar a few months ago! I haven’t had the time to explore this in more detail yet, but I think it’s a promising approach, which could enable new use cases
I fully agree, it’s definitely something we want to achieve with Nuclino. One of the challenges is to expose this in a way which is easy to understand especially for non-techie users.
Since traversal is essentially free In a graph database, two approaches came up as viable: sentence/paragraph as a node, and word/letter as a node. in the sentence/paragraph model, a document can simply be a linked list of sentence/paragraphs, while letter as a node is a little trickier with start and end nodes fluidly linked through the chain.
As ideas and text become “free” of “documents”, a lot of interesting possibilities immediately open up, such as being able to easily quote content just by connecting the quote to the current document, or being able to create a new version of a document by not just copy/pasting, but literally using the unchanged content from the previous version.
Agreed; this is something I hadn’t quite tackled myself. I’m leaning towards visually representing the relationships (we’re using a graph database on the back-end), but it’s only visually simple if there are less than 10 relationships shown.
I haven’t thought it through, but I would probably tend towards a “paragraph as node” approach as being able to build relationships between letters is not that useful and would be harder to implement. Especially when you start thinking about real-time collaborative editing it might become unnecessarily complex.
I like this idea in general, but I think one important aspect which makes this really hard to realize from a UX perspective is versioning. Quoting a paragraph just by reference would always show the latest version of the paragraph. What happens when the paragraph is edited or deleted? There are quite some challenges in handling these cases where different versions of the same snippets exist in different places.
Interesting idea, thanks for the links!
I experimented a little with different visualizations and came to the same conclusion. As the number of nodes and relationships grow it gets messy really fast. Aggregating the data in an intelligent way could be one way to deal with this.
What’s the project you’re working on and which graph database are you using? Sounds interesting!
We are looking for a Hackpad substitution since its acquisition by Dropbox and I want to vouch for a “comments” feature, which gave us a dramatical collaboration performance boost.
It’s really helpful to be able to easily discuss hard technical problems as a part of the document.
Thanks for the feedback! I’m part of the Nuclino team and we’re considering to add a comments feature. Currently, we are evaluating 3 approaches. It would be great if you could tell me your preference especially since you used Hackpad before.
Inline comments for a range of content like a sentence (Google Docs)