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

Listsome

A platform for sharing DIY projects and recipes with the maker community.

Table of Contents

Introduction

Listsome is a content sharing and documentation platform designed for indie web makers and creators. Instead of being “listless” (without energy or purpose), you’re “listsome” - actively documenting and sharing the things you create. Whether it’s a woodworking project, a new recipe, or an electronics build, Listsome helps you share what you’ve done so others can learn from your experience.

Think of it as:

  • A recipe box for all your DIY projects, not just food
  • A portfolio for makers who build things
  • A how-to wiki written by people who actually did the thing
  • Your project’s documentation that others can follow

Project Goals & Values

Core Values

Indie Web First

  • Content creators maintain ownership and control of their work
  • No platform lock-in - content lives on creator’s own sites
  • Support for indie web standards (microformats, WebMention, etc.)
  • Respect for creator autonomy and data sovereignty

Anti-Big Tech

  • Avoid dependency on FAANG services (AWS, GCP, etc.)
  • Use open source alternatives wherever possible
  • Support self-hosting and homelab deployment
  • Build with privacy-first principles

Accessibility & Inclusion

  • Deployable on modest hardware (Raspberry Pi, old laptops)
  • Low resource requirements for participation
  • Support for creators with limited technical resources
  • Progressive enhancement for all users

Community-Driven

  • Open source development model
  • Community curation and moderation
  • Transparent algorithms and processes
  • Collaborative improvement of discovery mechanisms

Primary Goals

  1. Enhance Discoverability: Help indie web creators reach new audiences without leaving their platforms
  2. Preserve Creator Control: Aggregate and enhance without appropriating or displacing original content
  3. Build Community: Foster connections between makers, learners, and creators across the indie web
  4. Democratize Access: Make sophisticated content discovery accessible to anyone with basic hardware
  5. Support Federation: Enable multiple hub instances to work together while maintaining independence

Architectural Overview

High-Level Architecture

The Listsome platform operates as a content sharing and documentation service with three primary layers:

  1. Discovery Layer: Finds and ingests content from distributed sources
  2. Processing Layer: Parses, enriches, and curates discovered content
  3. Distribution Layer: Provides enhanced discovery interfaces and federation capabilities

Technology Stack

Core Runtime

  • Language: Rust (performance, safety, single-binary deployment)
  • Web Framework: Axum (async, composable, well-maintained)
  • Database: SQLite (currently), PostgreSQL (planned)
  • Search: Full-text search (planned, Tantivy)

Frontend

  • Framework: Leptos (Rust-based, SSR)
  • Styling: Plain CSS
  • Markdown: Integrated editor with live preview (planned)

Content Processing (Planned)

  • Microformats: h-recipe, h-entry parsing
  • JSON-LD: Schema.org HowTo/Recipe structured data

Federation & Standards

  • ActivityPub: ActivityPub endpoints (partial)
  • WebFinger: Instance discovery (partial)
  • RSS/Atom: Feed generation and consumption

Deployment

  • Containerization: Docker with multi-arch builds (x86_64, ARM64) (planned)
  • Single Binary: Embedded assets, SQLite database, zero dependencies
  • CI/CD: Codeberg Actions (planned)

System Components

Content Discovery

  • WebMention endpoint for indie web integration
  • RSS/Atom feed crawler with intelligent scheduling
  • ActivityPub listener for fediverse content
  • Manual submission interface for community curation
  • Microformats parser for structured content detection

Content Processing Pipeline

  • Multi-stage parsing (structured → semi-structured → unstructured)
  • Confidence scoring for parsing quality assessment
  • Content enrichment (difficulty, time estimates, tags)
  • Duplicate detection and content deduplication
  • Image extraction and optimization

Data Storage

  • Metadata database (PostgreSQL/SQLite)
  • Full-text search index (Tantivy)
  • Content cache (summaries, images, metadata)
  • Analytics database (privacy-friendly, aggregated only)

User Interfaces

  • Web discovery interface (browse, search, filter)
  • RSS/JSON feeds (filtered streams, custom collections)
  • Embed widgets (for integration with other sites)
  • Mobile PWA (offline reading, responsive design)

Federation Network

  • ActivityPub server (share discoveries, follow creators)
  • WebHook system (real-time notifications)
  • Bridge integrations (Discord, Slack, etc.)
  • Hub-to-hub federation (distributed network)

Content Discovery Pipeline

Discovery Methods

WebMention Integration

  • Creators send webmentions when publishing new content
  • Automatic validation and processing of mentioned content
  • Support for indie web reply/like/repost interactions
  • Backfeed social interactions to original content

RSS/Atom Crawling

  • Intelligent scheduling based on publication frequency
  • Support for full-content and summary feeds
  • Automatic discovery of new feeds through OPML and link following
  • Respect for robots.txt and rate limiting

ActivityPub Listening

  • Monitor fediverse hashtags (#diy, #maker, #tutorial)
  • Process shared links and content from Mastodon, Lemmy, etc.
  • Federate discoveries back to the network
  • Support for ActivityPub collections and featured content

Manual Submission

  • Community-driven content submission
  • Verification and quality control processes
  • Batch processing for content creators
  • API for programmatic submission

Content Parsing Strategy

Tier 1: Structured Data (90-95% confidence)

#![allow(unused)]
fn main() {
// Microformats (h-recipe, h-entry)
<article class="h-entry">
  <h1 class="p-name">Project Title</h1>
  <div class="e-content">...</div>
</article>

// JSON-LD Schema.org
{
  "@type": "HowTo",
  "name": "Project Title",
  "instruction": [...]
}
}

Tier 2: Semi-Structured HTML (60-80% confidence)

  • Common blog patterns and CSS selectors
  • Numbered lists and heading hierarchies
  • Content area detection algorithms
  • Heuristic-based extraction

Tier 3: Unstructured Content (30-50% confidence)

  • Regex pattern matching for steps, materials, tools
  • Natural language processing for content classification
  • Machine learning for difficulty and time estimation
  • Requires human review for quality assurance

Content Enhancement

Automatic Enrichment

  • Difficulty level assessment based on tools and complexity
  • Time estimation from step analysis and historical data
  • Tag generation using content analysis and ML
  • Image extraction, optimization, and caching
  • Tool and material standardization

Community Enhancement

  • Quality voting and community feedback
  • Collaborative tagging and categorization
  • Content correction and improvement suggestions
  • Moderation and spam detection

Federation Model

Hub-to-Hub Federation

Distributed Network

  • Multiple independent hub instances
  • Shared content discovery and curation
  • Distributed moderation decisions
  • Resilient to single points of failure

ActivityPub Integration

  • Standard federation protocol
  • Interoperability with Mastodon, Lemmy, etc.
  • Custom activity types for instructional content
  • Rich metadata sharing between instances

Content Syndication

  • RSS/JSON feed sharing between hubs
  • Webhook notifications for new discoveries
  • Collaborative filtering and recommendation
  • Respect for creator preferences and licensing

Creator Benefits

Increased Discoverability

  • Content appears in federated timeline
  • Cross-instance search and discovery
  • Community-driven promotion and sharing
  • Analytics on content performance

Maintained Control

  • Content remains on creator’s platform
  • Full attribution and backlinks
  • Creator can request removal at any time
  • No platform lock-in or content migration

Community Engagement

  • Cross-platform comments and discussions
  • Collaborative improvement suggestions
  • Skill-based networking and connections
  • Project remixes and derivatives tracking

Technical Implementation

Core Architecture Decisions

Single Binary Deployment

#![allow(unused)]
fn main() {
// Embedded assets and database
// Zero external dependencies
// Configurable via environment variables
// Graceful degradation for limited resources
}

Resource Efficiency

  • Target <512MB RAM for basic functionality
  • Efficient content parsing and caching
  • Intelligent background processing
  • Rate limiting and resource management

Privacy-First Design

  • No user tracking or cross-site analytics
  • Aggregate statistics only
  • GDPR compliance built-in
  • User control over data retention

Extensible Plugin System

  • Custom content parsers
  • Additional federation protocols
  • Community-contributed enhancements
  • Modular deployment options

Development Practices

Open Source Methodology

  • Codeberg for primary development
  • Transparent development process
  • Community contributions welcome
  • Comprehensive documentation and examples

Quality Assurance

  • Comprehensive test suite (unit, integration, end-to-end)
  • Automated security scanning
  • Performance benchmarking
  • Community code review

Deployment Options

  • Single binary for simple deployment
  • Docker containers for containerized environments
  • Kubernetes manifests for production scale
  • Ansible playbooks for automated setup

Development Roadmap

Phase 1: Foundation (Months 1-3)

  • Basic content parsing pipeline
  • SQLite-based single-user deployment
  • Web interface for content discovery
  • RSS feed generation
  • Basic WebMention support

Phase 2: Enhancement (Months 4-6)

  • PostgreSQL support for multi-user instances
  • Advanced content enrichment (AI/ML)
  • Community features (voting, collections)
  • Mobile PWA development
  • Comprehensive test suite

Phase 3: Federation (Months 7-9)

  • ActivityPub server implementation
  • Hub-to-hub federation
  • Advanced search and filtering
  • Performance optimization
  • Security hardening

Phase 4: Ecosystem (Months 10-12)

  • Plugin system for extensibility
  • Advanced analytics and insights
  • Community moderation tools
  • Integration bridges (Discord, Slack)
  • Comprehensive documentation

Long-Term Vision

Sustainable Ecosystem

  • Self-sustaining community development
  • Multiple independent hub instances
  • Rich ecosystem of tools and integrations
  • Standard protocols adopted by other projects

Creator Empowerment

  • Indie web creators have powerful discovery tools
  • Reduced dependency on centralized platforms
  • Strong community connections and collaboration
  • Sustainable creator economy support

Technical Innovation

  • Advanced content understanding and classification
  • Intelligent recommendation systems
  • Seamless cross-platform integration
  • Privacy-preserving analytics and insights

This documentation is living and will evolve with the project. Contributions and suggestions are welcome through our Codeberg repository.