Dani Guardiola
banner
dio.la
Dani Guardiola
@dio.la
lead @proton.me (docs), writer at dio.la

- ex Automattic/WP core

- @ariakit.org & @biomejs.dev core, @solidjs.com ecosystem team, lexical.dev contributor
afaik, OnlyOffice is OT based for collaboration, which (again, afaik) is server-centric meaning it's not possible to do end-to-end encryption collab sessions with it.
September 16, 2025 at 6:00 PM
hmm I would expect Proton Mail to have some kind of warning here.

maybe if you file an issue something can be done to alert about this? I know we already have some warnings about similar stuff.

if you send a ticket I can try to give it some priority internally, as this seems quite serious.
July 19, 2025 at 10:56 AM
hired
July 15, 2025 at 9:47 AM
to clarify, I mean a library that handles it in a way that would allow us to support it.
July 12, 2025 at 1:05 PM
afaik, there is no browser-based library that handles ODF. since we don't snoop (we literally can't! everything is encrypted), we can't do it server side with non-browser tools.

I would absolutely love to provide support for it, it's a pretty hard and lengthy technical challenge though!
July 12, 2025 at 1:04 PM
to be clear, afaik we don't actually persist the compacted update yet. we only compact before loading on the client side but the result is lost after page unload. we might start doing it though!
July 11, 2025 at 9:50 AM
right, but you can't do much if it's e2e, it could be random data and you'd have no way to tell. that's the tradeoff of e2e encryption!

authorship might help a bit I guess.
July 11, 2025 at 8:57 AM
wanna apply? ;)
July 11, 2025 at 8:25 AM
interesting stuff! we just have to trust what the client does because we just see encrypted blobs on our end, so anything is fair from the client side.
July 11, 2025 at 8:25 AM
yes, we use Lexical, which is a text editor framework. it actually works a bit like React in the sense that it has a reconciliation phase! but it works with the DOM directly.
July 11, 2025 at 8:23 AM
we might actually start squashing and persisting at some point to save space and make the initial load faster, it might be a good optimization. funny timing, we were randomly discussing this idea today in the team!
July 10, 2025 at 9:44 PM
you'll need to be more specific :P

if you mean merging, afaik we only merge to debounce updates sent to other clients in the session, and also when loading a document initially, so we turn the array of updates into a single one before loading it.
July 10, 2025 at 9:44 PM
what do you mean? getting in the way of what? :)
July 10, 2025 at 9:31 PM
it was a compliment
June 20, 2025 at 9:05 AM
bitch
June 20, 2025 at 9:04 AM
so you'll lie?
June 19, 2025 at 10:28 AM
Ariakit uses vitest and is a monorepo
June 15, 2025 at 8:20 AM
I just used invert directly but this seems like a better approach, nice.
June 12, 2025 at 7:07 AM