Exciting stuff Luca. Cool to see you're using BlockNote as the editor (project I'm working on). Let us know if you have any feedback for us / features you'd love to see!
In our case, they started building on top of our project and then reached out, so not sure I can share any lessons on this. With that said:
- I think administrations in the EU are (slowly but steadily) adopting "Public Money, Public Code" policies and looking more seriously at open source
- Note that policy / strategy on this depends a lot per country / local administration / project etc. I think most governments don't actively develop in house - France is quite the exception in this
- There are a number of conferences that might be relevant (FOSDEM for example just finished)
- We also benefitted from EU grants (e.g.: NLNet) to bootstrap our work and the early research phases
Think of Docs more of a modern, kind of Notion-style collaboration tool. It's not meant to be a Word replacement for full-scale document authoring (I believe La Suite will work with LibreOffice for that, but might be wrong here). The product vision is that Docs should focus on "Content over Form"; i.e.: make it easy to create well-structured documents (content), as opposed to Word which makes it easy to change every little visual detail of your document (form).
In addition, there are some advanced integrations with other products in La Suite. For example, video calls made in Visio can be automatically AI-transcribed and presented in a Docs document, etc.
Great to see this on HN. fyi, La Suite is an umbrella project built by DINUM in France that started several years ago, mainly to enable people in the public administration to use more independent tools. It's built in-house, often on top of other open source technologies. E.g.: Matrix powers chat and LiveKit powers Visio (which was recently featured on HN as well when they announced it's rolled out to replace Zoom / Teams, etc [1])
I'm fortunate to be collaborating with them as their Docs product is built on top of our open source BlockNote text editor (https://www.blocknotejs.org).
Docs specifically started as an international collaboration with Germany [2] to explore how different EU countries can collaborate in building sovereign workplace solutions (several other countries including NL have shown interest as well).
They're actively supporting us, and related projects like Yjs (https://yjs.dev) by sponsoring feature development.
I'm sure many of the team members will follow along here as well! Happy to answer any questions.
They're pretty mindful of sponsoring things that also works for us. I.e.: we try to align both our roadmaps as good as possible.
We're discussing how to work best with downstream dependencies as well. So far they're actively sponsoring Yjs, but not prosemirror/tt.
fyi, here are some early thoughts by the PM of Docs on how to collaborate between public sector and OSS (companies): https://github.com/virgile-dev/playbook-work-with-oss-librar... (we surely don't check all the boxes yet, but it's good to have the discussion!). Feel free to jump in!
1.5 year ago DINUM (La Suite) and OpenDesk (Germany) reached out and started sponsoring quite a bit of our work which has really helped us accelerate the project
Yep! Docs is using our editor BlockNote (https://www.blocknotejs.org) which builds upon Prosemirror (and we're also proud to be sponsors of Marijn from Prosemirror who's done an amazing job, indeed)
Maintainer of BlockNote here (and contributor to HocusPocus). I can't speak for Docs as to why they chose BlockNote, but can answer some of your questions. BlockNote is actually built on top of Tiptap - but designed to take away the heavy lifting. As powerful as they are, to build a Notion-like editor on top of Tiptap (or Prosemirror) still requires quite some engineering firepower. We've built BlockNote to come "batteries-included" with common UI components and a simpler API to make it easy for you to add a modern, block-based editor to your app.
Congrats! I used PartyKit since the early beta; for the open source React rich text editor I'm working on (https://www.blocknotejs.org, the homepage runs on Partykit), and PartyKit was a breeze to integrate (ofc, big part because we both build on Yjs). Looking forward to seeing where Cloudflare wants to take this further!
Congrats OP on launching this, looking forward to dive further in! It's great to see people experimenting in the Reactive + Live Programming space as like you mention, I think it can bring a lot of improvements to how we build software. Did you run into any limitations adopting this model?
> A killer feature of Observable notebooks for me is that they provide the shortest possible route from having an idea to having a public URL with a tool that I can bookmark and use later
The code you write is pure Typescript (instead of sth custom like ObservableJS) which opens more paths to interoperability (aside from having a public URL). For example, I'm now working to make the code instantly exportable so you can mix it directly into existing codebases (or deploy on your own hosting / Vercel / whatever you prefer).
Although it's entirely architected on a local-first stack, I indeed haven't shipped the main benefit of this, a locally installable app. There's a WIP PR here that adds PWA support: https://github.com/TypeCellOS/TypeCell/pull/352. I'll highlight this more when this is merged.
Nevertheless, some of the benefits are already noticeable and come "out of the box" with building on a local first architecture, even if not shipping an executable yet:
- multiplayer sync
- speed: documents are loaded from local storage initially if they have been loaded before, and changes sync in after that
In the future (when there's an installable app), I also want to enable saving / loading from the file system, so that it's completely transparent where your data is.
This article has been quite the inspiration for many projects and progress on this front. I think we're seeing more and more developments around CRDTs and local-first frameworks / applications.
I'm working on a few projects in this area:
- https://www.typecell.org - Notion meets Notebook-style live programming for TypeScript / React
- https://www.blocknotejs.org - a rich text editor built on TipTap / Prosemirror that supports Yjs for local-first collaboration
In my experience so far, some things get more complicated when building a local-first application, and some things get a lot easier. What gets easier is that once you've modeled and implemented the data-layer (which does require you to rethink / unlearn a few principles), you don't need to worry about data-fetching, errors etc. as much as in a regular "API-based" app.
Another interesting video I recommend on this topic is about Linear's "Sync Engine" which employs some of the local-first techniques as well: https://www.youtube.com/watch?v=Wo2m3jaJixU