Alex Good's Avatar

Alex Good

@patternist.xyz

I work on local-first software, currently building Automerge at Ink and Switch. Find me at patternist.xyz

4,722
Followers
278
Following
57
Posts
14.04.2023
Joined
Posts Following

Latest posts by Alex Good @patternist.xyz

Looking forward to this!

22.12.2025 21:28 πŸ‘ 12 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Release v0.35.0 Β· jj-vcs/jj About jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started. Release highlights Workspaces can now have their own separa...

jujutsu has support for tags now! Tags are the only reason I've had to use the `git` CLI in the last few months. Hurrah! github.com/jj-vcs/jj/re...

07.11.2025 09:47 πŸ‘ 11 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A screenshot of the Automerge landing page. It says "Version control for your data. Automerge is a local-first sync engine for multiplayer apps that works offline, prevents conflicts, and runs fast."

A screenshot of the Automerge landing page. It says "Version control for your data. Automerge is a local-first sync engine for multiplayer apps that works offline, prevents conflicts, and runs fast."

We have a shiny new website courtesy of @spiralganglion.com and @seaofclouds.com πŸ™Œ

πŸš€ Check it out: automerge.org

16.10.2025 19:54 πŸ‘ 108 πŸ” 18 πŸ’¬ 2 πŸ“Œ 4
Preview
Sept '25 Automerge Community Call Β· Luma πŸ‚ September Automerge Call ✨ Get ready to kick off the fall with the Sept '25 Automerge Community Call! Whether you’re a seasoned contributor, a curious…

😲 We have a ✨packed✨ agenda for the September edition of the Automerge Community Call on the 24th! Updates & talks featuring @chee.party, @daffl.me, @spiralganglion.com, @seaofclouds.com, @patternist.xyz, @expede.wtf, and John Mumm! Don't miss out β€”Β RSVP here: luma.com/70fuozje

15.09.2025 17:27 πŸ‘ 13 πŸ” 6 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail
31.08.2025 04:52 πŸ‘ 67 πŸ” 10 πŸ’¬ 1 πŸ“Œ 2

Moving ranges of text is really thorny. The problems are with concurrent changes, there's loads of annoying edge cases. E.g. I move paragraph A to be inside paragraph B and you concurrently move paragraph B to be inside paragraph A.

28.08.2025 19:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Automerge Community Call Β· Luma β˜€οΈ Automerge Community Call Kickoff! πŸŒΏπŸ‰ Celebrate the season and kick off something new with our new Automerge Community Call! We’re gathering for a relaxed,…

Want to hear about the latest in Automerge? Come join the Community Call Kickoff on August 20 (and sign up for the calendar while you're at it!) lu.ma/zv6tpuu4

24.07.2025 21:54 πŸ‘ 20 πŸ” 8 πŸ’¬ 1 πŸ“Œ 1
Automerge 3.0 | Automerge CRDT Automerge is a local-first data sync engine that makes it easy to build collaborative apps. Today we're excited to announce version 3.0 of Automerge!

Automerge 3 is here: the heart transplant is complete! Huge improvements in memory usage and (in most cases) correspondingly big performance improvements too. Backwards compatible on disk and the network so there's no reason not to upgrade today: automerge.org/blog/automer...

15.07.2025 06:04 πŸ‘ 130 πŸ” 32 πŸ’¬ 4 πŸ“Œ 4

That's a typo on my part, I've fixed it now, the actual figure is 1.3 _Mb_

15.07.2025 09:25 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

Oh that looks great! I just finished Plausibility, so this is next up.

25.06.2025 16:44 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I very much enjoyed "The Origins of Evolutionary Innovations", which examines in more detail what kind of relationship you need between genotype and phenotype in order to have robust, evolvable organisms.

25.06.2025 15:43 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Alex Good - Beelay, a (reasonably) generic encrypted sync protocol for CRDTs
Alex Good - Beelay, a (reasonably) generic encrypted sync protocol for CRDTs For the last six months the Automerge team has been working on implementing end-to-end encryption and access control for local first applications as part of ...

Watch @patternist.xyz talk about Beelay, a (reasonably) generic encrypted sync protocol for CRDTs. youtu.be/neRuBAPAsE0?...

25.06.2025 07:01 πŸ‘ 13 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
The Gap Through Which We Praise the Machine My current theory of agentic programming: people are amazing at adapting the tools they're given and totally underestimate the extent to which they do it, and the amount of skill we build doing that i...

Why do some have a shit time with LLMs for programming while others love it?

To succeed, the latter group tacitly creates tons of scaffolding and gain weird new skills. While it works, this posts explains how doing all that is an incidental consequence of bad interaction design in coding AI agents.

09.06.2025 13:14 πŸ‘ 148 πŸ” 51 πŸ’¬ 5 πŸ“Œ 17
Preview
Malleable software: Restoring user agency in a world of locked-down apps The original promise of personal computing was a new kind of clay. Instead, we got appliances: built far away, sealed, unchangeable. In this essay, we envision malleable software: tools that users can...

Malleable software: Restoring user agency in a world of locked-down apps
www.inkandswitch.com/essay/mallea...

10.06.2025 14:05 πŸ‘ 131 πŸ” 37 πŸ’¬ 0 πŸ“Œ 12

Local first development is funny sometimes. I just noticed that a sync server I run for a small project was storing it's data `/tmp` - which gets deleted every day. No one noticed for three months because everyone has the data locally so the only symptom was slightly degraded sync in the mornings.

16.05.2025 10:35 πŸ‘ 29 πŸ” 5 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

We’re excited to announce that @patternist.xyz member of the @inkandswitch.com team, will be speaking about Beelay, a new generic sync system.

26.04.2025 06:01 πŸ‘ 17 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

It preserves all the history but it's not syncing the game state, it's syncing the level editor. What you're looking at is someone playing the game whilst someone else concurrently edits the level.

19.02.2025 13:18 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I'm using Silverblue on my AMD Framework 13. I had a strange issue getting it booting for the first time (github.com/fedora-silve...) but since then it's been fine. This laptop doesn't have nvidia hardware though so 🀷.

16.01.2025 16:11 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Under the hood this is using automerge to sync state between two Godot editors.

18.12.2024 10:45 πŸ‘ 49 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0

This reminds me of the "dust hypothesis" in Greg Egan's Permutation City. The idea being that given a cloud of dust with enough particles you could map each state of the dust cloud to each state of the brain and thus interpret the dust cloud as a simulation of a brain.

05.12.2024 09:47 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - automerge/automerge-codemirror Contribute to automerge/automerge-codemirror development by creating an account on GitHub.

We have CodeMirror bindings github.com/automerge/au... which you could try hooking up.

28.11.2024 09:50 πŸ‘ 3 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

I sat down at my desk this morning so full of ideas about what I was going to do today.

I have now spent the whole morning fighting with GitHub Actions.

27.11.2024 13:28 πŸ‘ 17 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

Excellent! I love this sentiment from the site: "what if building websites didn't have to be so complicated", πŸ’―.

Drop me a DM and let's arrange a call.

23.11.2024 14:16 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The quick start definitely needs some work. Any chance you would be up for a chat about it? I want to improve the docs so I want to hear from new users about what is confusing or strange.

23.11.2024 13:59 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I wrote this up in a little more detail patternist.xyz/posts/ad-hoc...

22.11.2024 16:05 πŸ‘ 9 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A screenshot of a JavaScript function which calls `gnuplot` with the `kittycairo` backend so that it outputs the plot directly to the terminal

A screenshot of a JavaScript function which calls `gnuplot` with the `kittycairo` backend so that it outputs the plot directly to the terminal

A picture of a plot rendered in the terminal.

A picture of a plot rendered in the terminal.

Just discovered that `gnuplot` has a `kittycairo` backend which can output an image directly to a terminal which supports the kitty graphics protocol. This makes writing little one off scripts which produce a nice graph much easier.

22.11.2024 11:53 πŸ‘ 16 πŸ” 3 πŸ’¬ 1 πŸ“Œ 1

Babies are also a great progressive overload weight training program, no need for spreadsheets, just keep feeding them.

22.11.2024 11:24 πŸ‘ 10 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Exactly this πŸ˜ƒ

20.11.2024 14:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I've changed my homepage (and handle) from memoryandthought.me to patternist.xyz. Mostly because I was bored of the old one.

20.11.2024 12:42 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Beehive lab notebook: Local-first access control Local-first access control

We're working on something like this at I&S. Initially we're building E2EE for Automerge but I think there's a good chance we'll end up with something that can readily be generalised. Here's some lab notes from @expede.wtf who's leading that project www.inkandswitch.com/beehive/note...

18.11.2024 23:49 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0