Texttile, a multiplayer blog engine for people who write together

Lobsters Hottest Products

Summary

Texttile is an open-source, multiplayer blog engine written in Elixir that allows multiple authors to collaboratively edit text and media in real-time, with a focus on privacy and self-hosting.

<p><a href="https://lobste.rs/s/logpfy/texttile_multiplayer_blog_engine_for">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 09/01/26, 07:43 PM

# Texttile, a multiplayer blog engine for people who write together – Klaus Breyer Source: [https://www.v01.io/posts/2026/08/texttile/](https://www.v01.io/posts/2026/08/texttile/) 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\. 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\. I built[imaedge](https://imaedge.org/)for that part first, and we tried it on the next trip, in[Mexico](https://www.v01.io/posts/2026/08/mexico/)this year\. Uploading held up\. Tiles arrive in the order the camera gives them, and dragging one changes the order in the gallery\. What was still missing was bringing it together with the text\. The family blog ran on WordPress, but WordPress never got this\. Not the mobile editing experience, not the video support, not the gallery, and definitely not the “together” part\. You are limited to one author per entry \(but you get a bunch of plugins nobody maintains and constant bot attacks on your wp\-admin\)\. So after Mexico, with the gallery proven, I did what every programmer apparently has to do once\. I wrote my own CMS\. It is called[Texttile](https://www.texttile.blog/), it is open source, and it is written in Elixir\. It allows multiple people in the same entry at the same time, uploading and sorting photos AND videos, treated as first\-class citizens\. ## What it does differently[¶](https://www.v01.io/posts/2026/08/texttile/#what-it-does-differently) In most blog engines only one author can edit an entry\.[Texttile](https://www.texttile.blog/)rethinks content management as multiplayer\. - **Text:**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\. - **Tile:**both of you drag tiles with photos and videos into place at the same time, and you see each other doing it\. The gallery is never locked\. An entry consists of text and tiles \- that is the name\. ![Your screen: you write while the other person reads along](https://www.v01.io/posts/2026/08/texttile/writing-you.png) ![The other person’s screen showing the same entry](https://www.v01.io/posts/2026/08/texttile/writing-other.png) Both screens show the same entry at the same moment\. The writer sees a purple status bar and can edit the text\. The other person sees an orange status bar and a read\-only editor\. Both can still work on the gallery\. Travel shaped the rest: - [Texttile](https://www.texttile.blog/)loads nothing from outside\. No CDN, no tracker, no captcha, no hosted font, no cookie banner\. A reader’s browser talks to your server and nothing else\. - It stays light enough for a slow line: small pages, little JavaScript, and pictures only as large as the screen asks for\. - Videos come from your own server\. Drop one in and[Texttile](https://www.texttile.blog/)converts it, thumbnail included\. No YouTube embed, no player from anywhere else\. - [Texttile](https://www.texttile.blog/)stores your Markdown byte for byte\. A version diff shows real edits and nothing else\. - One container, one folder\. Phoenix, LiveView, ffmpeg and SQLite live in one Docker image\. Everything is in`/data`\. Move that folder and you move the blog\. - Comments, a newsletter, and statistics stay on your server\.[Texttile](https://www.texttile.blog/)uses no cookies and stores no IP addresses\. - English and German \(more translations are welcome as a contribution\!\) ## What it is not[¶](https://www.v01.io/posts/2026/08/texttile/#what-it-is-not) 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\. My philosophy is that a product is only perfect when there is nothing left to take away\. ## Why Elixir[¶](https://www.v01.io/posts/2026/08/texttile/#why-elixir) Multiple people editing one entry at the same time is what the BEAM was made for\. The lock is a GenServer, the keystrokes travel over PubSub, and the whole thing runs on one small machine next to a SQLite file\. No Redis, no queue, no second service\. ## Try it[¶](https://www.v01.io/posts/2026/08/texttile/#try-it) Run it on your own machine: ``` docker run -d --name texttile \ -p 4000:4000 \ -v texttile-data:/data \ -e SECRET_KEY_BASE="$(openssl rand -base64 48)" \ -e PHX_HOST=localhost \ -e ADMIN_USERS=[email protected] \ ghcr.io/texttile-blog/texttile:3 ``` Or start a demo at[www\.texttile\.blog](https://www.texttile.blog/)\. You get your own blog for 24 hours\. If you like it, you can keep it\. If not, it goes to sleep and is deleted 30 days later, with everything in it\. I put entries from our own travel blog from Mexico online at[demo\.texttile\.blog](https://demo.texttile.blog/), if you want to see it from the reader’s side\. The code is at[github\.com/texttile\-blog/texttile](https://github.com/texttile-blog/texttile)\. Now I am interested in your feedback\! How do you blog on the road? And here it is in action: ![Two screens, one entry: one person writes, the other reads along and can take over](https://www.v01.io/posts/2026/08/texttile/writing-poster.jpg)

Similar Articles

There's a dungeon under this blog

Lobsters Hottest

A developer describes embedding a peer-to-peer multiplayer dungeon game into a static blog using WebRTC and Trystero, with deterministic procedural generation and no backend server.

Markdown browser for LLMs

Reddit r/LocalLLaMA

The author introduces TextWeb, an open-source tool that renders web pages as markdown for LLMs instead of using expensive vision models, featuring CLI and MCP server support.