Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Architecture

Listsome is a federated, self-hostable platform for discovering and sharing DIY content (tutorials, recipes, projects).

Principles

  • Own your data - Content lives on your instance, you control it
  • Federation - Instances discover and follow each other via ActivityPub
  • No scraping - Explicit subscription model, not stealth extraction
  • RSS-first - Structured feeds as the interoperability layer

How It Works

┌─────────────────┐       Follow        ┌─────────────────┐
│   your.listsome │  ──────────────────►  │  my.listsome    │
│                 │  ◄──────────────────  │                 │
│  Your tutorials │     Content feed      │  Your feed +    │
│  Your recipes   │                       │  My feed        │
│  Your projects │                       │                 │
└─────────────────┘                       └─────────────────┘
        ▲                                        ▲
        │                                        │
     WebFinger                               WebFinger
        │                                        │
        └─────────── Fediverse ──────────────────┘

Instance Discovery

  1. WebFinger - Query https://instance/.well-known/webfinger?resource=acct:user@instance
  2. Actor endpoint - Returns ActivityPub actor with inbox/outbox URLs
  3. Follow - Send Follow activity to their inbox
  4. Accept - They approve, relationship established
  5. Aggregate - Your instance pulls their RSS feed

Content Flow

Publishing (Local)

  1. Create content via admin UI or API
  2. Content stored in local SQLite database
  3. Available via RSS feed at /feed.xml
  4. Optionally broadcast via ActivityPub outbox

Discovery (Remote)

  1. Discover instance via WebFinger
  2. Send Follow request
  3. On Accept, subscribe to their RSS feed
  4. Content aggregated into your local feed
  5. Search across your aggregated content

Data Model

Local Content

  • Projects with title, description, markdown content
  • Tags for organization
  • Author attribution
  • Published status

Remote Content (Aggregated)

  • Fetched from followed instances’ RSS feeds
  • Stored locally for search
  • Original source preserved for attribution

Relationships

  • Followed instances (who you follow)
  • Followers (who follows you)
  • Pending follows (approval queue)

Comparison to Faircamp/Fairplayer

ComponentFaircampFairplayerListsome
PublisherArtists publish musicAggregates faircampsUsers publish DIY content
FormatAudio catalogAudio playerTutorials, recipes, projects
DiscoveryManual URLsWebFingerWebFinger + RSS
Subscription-Follow faircampFollow listsome instance
Federation-Fairplayer networkListsome federation

Listsome takes the Faircamp/Fairplayer model and applies it to DIY/maker content with full federation support.