<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Klaus Breyer</title>
    <description>The latest articles on DEV Community by Klaus Breyer (@klausbreyer).</description>
    <link>https://dev.to/klausbreyer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1115119%2F32225ee0-e529-475d-901f-647db678009c.jpeg</url>
      <title>DEV Community: Klaus Breyer</title>
      <link>https://dev.to/klausbreyer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/klausbreyer"/>
    <language>en</language>
    <item>
      <title>Texttile, a multiplayer blog engine for people who write together</title>
      <dc:creator>Klaus Breyer</dc:creator>
      <pubDate>Sun, 06 Sep 2026 09:18:37 +0000</pubDate>
      <link>https://dev.to/klausbreyer/texttile-a-multiplayer-blog-engine-for-people-who-write-together-1f7f</link>
      <guid>https://dev.to/klausbreyer/texttile-a-multiplayer-blog-engine-for-people-who-write-together-1f7f</guid>
      <description>&lt;p&gt;This is a shortened version of my &lt;a href="https://www.v01.io/posts/2026/08/texttile/" rel="noopener noreferrer"&gt;original post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My wife and I have blogged about every trip since our honeymoon 10 years ago. For the people at home, for ourselves later, and by now for our children. We took turns writing, but both had photos and videos on their phones.&lt;/p&gt;

&lt;p&gt;The text was never the hard part. The photos and videos were: every day one of us sent them from the phone to the other, who had to upload them and sort them into the entry in the right order.&lt;/p&gt;

&lt;p&gt;So I wrote &lt;a href="https://www.texttile.blog" rel="noopener noreferrer"&gt;Texttile&lt;/a&gt;, an open-source blog engine built for writing together.&lt;/p&gt;

&lt;h2&gt;
  
  
  One entry, two screens
&lt;/h2&gt;

&lt;p&gt;Multiple people can have the same entry open. One of them has the text and types, the other watches the words arrive and can take the text over with one click. Both can still work on the gallery.&lt;/p&gt;

&lt;p&gt;Photos and videos belong in the same gallery. Videos come from your own server. Drop one in and Texttile converts it, thumbnail included. No YouTube embed, no player from anywhere else.&lt;/p&gt;

&lt;h2&gt;
  
  
  One container, one folder
&lt;/h2&gt;

&lt;p&gt;Phoenix, LiveView, ffmpeg and SQLite live in one Docker image. Everything is in &lt;code&gt;/data&lt;/code&gt;. Move that folder and you move the blog.&lt;/p&gt;

&lt;p&gt;A reader's browser talks to your server and nothing else. No CDN, no tracker, no hosted font.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is not
&lt;/h2&gt;

&lt;p&gt;There are no roles, no permission matrix, no plugins, no theme marketplace. Everybody with an account is an admin. I built it for people who trust each other, because that is who writes a blog together.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://www.texttile.blog" rel="noopener noreferrer"&gt;try it&lt;/a&gt; or &lt;a href="https://github.com/texttile-blog/texttile" rel="noopener noreferrer"&gt;read the source&lt;/a&gt;. The &lt;a href="https://www.v01.io/posts/2026/08/texttile/" rel="noopener noreferrer"&gt;full story includes a video&lt;/a&gt; showing both screens.&lt;/p&gt;

&lt;p&gt;How do you blog on the road?&lt;/p&gt;

</description>
      <category>elixir</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
