Post

🫠 automerge.org The new Automerge website is live!! The biggest (smallest) surprise? How fun it was to build the demo! Automerge is so robust, it withstood all our weird ideas — like using physics-driven particles to literally push changes between docs — and it just worked. Perfectly. Every time.

20 reposts140 likes

Hahah I was THIS CLOSE to just doing it all on the GPU. Not many good, performant ways to figure out "where on screen is this one character of DOM text?" But in the end, using a monospace font and some carefully-fudged calculations did the trick 🍰

this is random but: function getBox(textNode, char = 0) { const range = document.createRange(); range.setStart(textNode, char); range.setEnd(textNode, char + 1); return range.getBoundingClientRect() }

The reason I didn't take this approach is that any time the number of tasks changes, I need to recompute all the positions particles will have *when they arrive*, which is in the future, which requires doing a lot of speculative positioning. Doing that inside the DOM was like 100x slower.

Wait… this might be the thing I needed to pull off my thought of a blog that is fully rewindable (presentation and content progressively logged)

Nicholas Macias@nich.bsky.social

Old heads, the year is 2000, it’s maybe February, and your favorite designer’s blog just reset to basic HTML and they incrementally update CSS to design a fresh look. Hundreds of people join in doing the same. What’s that trend/event called?