<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Outl on Thiago Avelino</title><link>https://avelino.run/tags/outl/</link><description>Recent content in Outl on Thiago Avelino</description><generator>Hugo</generator><language>en-us</language><copyright>© Avelino</copyright><lastBuildDate>Fri, 29 May 2026 14:06:01 -0300</lastBuildDate><atom:link href="https://avelino.run/tags/outl/index.xml" rel="self" type="application/rss+xml"/><item><title>Building an outliner on the move-op paper</title><link>https://avelino.run/from-paper-to-outliner/</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://avelino.run/from-paper-to-outliner/</guid><description>&lt;p&gt;A few days ago I &lt;a href="https://avelino.run/file-sync-isnt-trivial"&gt;dissected the 2021 Kleppmann paper&lt;/a&gt; on highly-available tree move. The post ended with one open question: can you build an outliner on top of this?&lt;/p&gt;
&lt;p&gt;I built one. It's called &lt;strong&gt;&lt;a href="https://github.com/avelino/outl"&gt;outl&lt;/a&gt;&lt;/strong&gt;. The first version syncs a terminal client on macOS and an iOS app over iCloud Drive. No central server. No merge dialogs. No lost text. This post is everything I had to figure out after the paper.&lt;/p&gt;</description></item></channel></rss>