Listsome
A platform for sharing DIY projects and recipes with the maker community.
Table of Contents
- Introduction
- Project Goals & Values
- Architectural Overview
- Content Sharing Pipeline
- Federation Model
- Technical Implementation
- Development Roadmap
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
- Enhance Discoverability: Help indie web creators reach new audiences without leaving their platforms
- Preserve Creator Control: Aggregate and enhance without appropriating or displacing original content
- Build Community: Foster connections between makers, learners, and creators across the indie web
- Democratize Access: Make sophisticated content discovery accessible to anyone with basic hardware
- 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:
- Discovery Layer: Finds and ingests content from distributed sources
- Processing Layer: Parses, enriches, and curates discovered content
- 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.