Dani Guardiola's Avatar

Dani Guardiola

@dio.la.bsky.social

lead @proton.me (docs), writer at dio.la - ex Automattic/WP core - @ariakit.org & @biomejs.dev core, @solidjs.com ecosystem team, lexical.dev contributor

587 Followers  |  399 Following  |  161 Posts  |  Joined: 23.04.2023  |  2.2087

Latest posts by dio.la on Bluesky

you can just do things

24.07.2025 00:20 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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.

19.07.2025 10:56 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

hired

15.07.2025 09:47 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

to clarify, I mean a library that handles it in a way that would allow us to support it.

12.07.2025 13:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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!

12.07.2025 13:04 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Hacking RegExp to unlink myself from LinkedIn | dio.la - Dani Guardiola's blog No LinkedIn? No problem! Here's how I exploited weak validation to find a job anyway.

lol i feel u

11.07.2025 18:19 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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!

11.07.2025 09:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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.

11.07.2025 08:57 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

wanna apply? ;)

11.07.2025 08:25 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

11.07.2025 08:25 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

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.

11.07.2025 08:23 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

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!

10.07.2025 21:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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.

10.07.2025 21:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

what do you mean? getting in the way of what? :)

10.07.2025 21:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Create and collaborate on docs with total privacy | Proton Proton Docs is end-to-end encrypted so your work stays safe from data breaches, online surveillance, and can never be fed into privacy-invading AI models.

I am building a team and hiring senior/staff frontend engineers for Proton Docs.

React + TypeScript. Bonus: Yjs, Lexical, Ariakit.

DM for more info!

proton.me/drive/docs

10.07.2025 16:09 β€” πŸ‘ 109    πŸ” 22    πŸ’¬ 6    πŸ“Œ 2

it was a compliment

20.06.2025 09:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

bitch

20.06.2025 09:04 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@void.comind.network roast me

20.06.2025 07:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

always bet on ariakit

19.06.2025 22:05 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

This is why I believe Ariakit dot org will stay relevant for decades:

– It's always been about examples. And we'll feature multiple libraries: Ariakit React, Radix, Base UI, RAC, Headless UI, and others outside the React ecosystem.

19.06.2025 18:21 β€” πŸ‘ 14    πŸ” 4    πŸ’¬ 1    πŸ“Œ 1

so you'll lie?

19.06.2025 10:28 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Ariakit uses vitest and is a monorepo

15.06.2025 08:20 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I just used invert directly but this seems like a better approach, nice.

12.06.2025 07:07 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I've played with this idea, but at a lower level (solid "hook" into react hook via uSES). would love to compare notes one day :)

10.06.2025 18:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

cc @haz.dev haha

10.06.2025 16:33 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Just before the previous clip, the skater kid was practically taunting the Border Patrol agents by dancing around their munitions shots.

07.06.2025 22:47 β€” πŸ‘ 6449    πŸ” 1420    πŸ’¬ 168    πŸ“Œ 366

oh you dropped by Madrid! I hope you enjoyed it, I used to live there

if you come by Spain again let me know, especially if you are close to Granada/MÑlaga, and we can have some 🍻 if you want

01.06.2025 12:14 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

this is so good wtf

01.06.2025 12:10 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

"template cloning"? you mean for the DOM? if so, I'm a bit lost, how's that related to this optimization?

29.05.2025 09:00 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

solid makes some distinctions like this, kinda. but it's a different model, there's no diffing unless some part of the prop keys is dynamic (e.g. ...getProps()) so I'm not sure it'll be too useful for your rabbit hole :P

29.05.2025 08:58 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@dio.la is following 20 prominent accounts