TRIPLE PROTOCOL PILLAR // TWTXT & YARNS DECENTRALIZED SPEC

Twtxt & Yarns Protocol

Indie in a Box treats Twtxt and Yarns as first-class citizens alongside IndieWeb and ActivityPub. Publish, consume, mention, thread, and embed rich media using simple, human-readable flat text feeds.

01 // What is Twtxt?

Twtxt is a minimalist, decentralized microblogging format that operates entirely through static plain-text files served over standard HTTP/HTTPS GET requests. There are no databases to query, no central hubs, and no proprietary APIs.

๐Ÿ“„

Zero-Overhead Plain Text

Each entry is a single line consisting of an ISO 8601 UTC timestamp, a TAB character separator, and the message content.

โšก

Static & Edge Cacheable

Because twtxt.txt is a static text file, it can be cached indefinitely on Cloudflare edge nodes or served from minimal low-power servers.

๐Ÿงถ

Modern Yarns Extensions

Supports the Yarns metadata specification, including threaded conversation tags, avatars, nicknames, markdown formatting, and media extraction.

02 // Automated Feed Generation (/twtxt.txt)

Whenever a post or short note is published, Indie in a Box compiles your public feed directly to public_html/twtxt.txt. Multi-line markdown notes are automatically collapsed into single-line entries with links and wikilinks cleanly formatted.

SPECIFICATION // EXAMPLE PUBLIC TWTXT.TXT FEED
# nick = lumen
# link = https://indieinabox.2lp.in/twtxt.txt
# author = Lumen Pink
# description = Indie in a Box official updates and cyberpunk devlog
# avatar = https://indieinabox.2lp.in/assets/avatar.png

2026-09-22T06:59:00Z	Indie in a Box v1.0.0 is officially released! https://codeberg.org/indieinabox/indieinabox (#release)
2026-09-22T07:45:00Z	Documentation live at https://indieinabox.2lp.in with Triple Protocol mastery!
2026-09-22T08:15:00Z	@<alice https://alice.example.com/twtxt.txt> Welcome to the decentralized web! (#greetings)
Header Attribute Specification Purpose
# nick = <str> Twtxt Metadata Spec Short identifier/handle for mentions (e.g. lumen).
# link = <url> Twtxt Metadata Spec Canonical URL pointing back to the feed itself.
# author = <str> Yarns Extension Full human display name of the feed owner.
# description = <str> Yarns Extension Short profile bio or feed description.
# avatar = <url> Yarns Extension Direct URL to the author's profile portrait image.

03 // Yarns Protocol Extensions

Indie in a Box implements the complete Yarns specification for extended rich interaction over plain text:

Feature Syntax Rendered HTML Output & Behavior
Mentions @<nick https://url/twtxt.txt> Autolinked anchor tag: <a href="url" class="mention">@nick</a>.
Subject / Thread Tags (#subject_name) Categorizes or threads the twt: <span class="twtxt-subject">(#subject)</span>.
Inline Formatting **bold**, *italic*, ~~strike~~, `code` Standard semantic HTML: <strong>, <em>, <del>, <code>.
Blockquotes > quoted text Rendered as stylized blockquote container: <blockquote class="twtxt-quote">.
Media Embeds ![alt](https://.../photo.jpg) Automatic visual media card: <figure class="twtxt-media"><img ...></figure>.
Audio & Video Detection Bare audio (.mp3, .ogg) or video (.mp4, .webm) URLs Automatically converted into interactive native HTML5 <audio controls> or <video controls> players!
Hashtags #hashtag Autolinked to global Twtxt search hubs: <a href="...search?tag=hashtag">#hashtag</a>.

04 // Ingestion & Microsub Reader Integration

You don't need a separate app to read Twtxt feeds. Indie in a Box unifies Twtxt directly into its Microsub Reader:

Subscribing to a Twtxt Feed

1. Open Admin โ†’ Timeline.
2. Select or create a channel (e.g. #twtxt or #inbox).
3. Click + Subscribe and paste the remote twtxt.txt URL.
4. The engine resolves author metadata, avatars, and begins tracking updates.

CLI Feed Polling

Run the feed crawler manually or in your cron tasks:

BASH
# Fetch all RSS, Atom, and Twtxt subscriptions
php indieinabox.php fetch

# Alias command:
php indieinabox.php microsub:fetch

05 // Spam Filters & Moderation

Twtxt feeds ingested by Indie in a Box pass through the unified MicrosubFilterService:

  • Mute Nicknames: Silences entries from toxic nicknames across all subscribed feeds.
  • Mute Feed URLs: Drops malicious or abusive twtxt endpoints permanently.
  • Keyword Blacklist: Automatically discards spam messages matching configured regex patterns or blocked keyword lists.

06 // Client Ecosystem & Interoperability

Because Indie in a Box outputs standard twtxt.txt and parses Yarns specifications cleanly, you can interact with your feed using any client across the Twtxt ecosystem:

๐Ÿ’ป

twtxt (CLI)

The original Python CLI client. Follow feeds, read timelines, and post tweets from your terminal.

๐Ÿงต

Yarn (Golang)

Full-featured Twtxt/Yarns server and client supporting rich threads, avatars, and media.

๐Ÿ“ฑ

Jenny & Goryon

Modern mobile and desktop graphical readers for reading flat feeds on Android, iOS, and Linux.