# StarPunk v1.X.X IndieWeb-Focused Release Options

*Created: 2025-11-28*
*Status: Options for architect review*

Based on analysis of current implementation gaps and IndieWeb specifications, here are three genuinely different paths forward for full IndieWeb protocol support.

---

## Option A: v1.2.0 "Conversation" - Webmention & Reply Context

**Focus:** Enable two-way conversations between IndieWeb sites

**What's Missing Now:**
- Zero Webmention support (no sending, no receiving)
- No reply context display (when replying to others)
- No backlinks/responses display
- No notification system for mentions

**What You'll Get:**
- **Webmention Sending** (W3C Webmention spec)
  - Automatic endpoint discovery via HTTP headers/HTML links
  - Send notifications when mentioning/replying to other sites
  - Queue system for reliable delivery with retries
- **Webmention Receiving** (W3C Webmention spec)
  - Advertise endpoint in HTML and HTTP headers
  - Verify source mentions target
  - Store and display incoming mentions (likes, replies, reposts)
- **Reply Context** (IndieWeb reply-context spec)
  - Fetch and display content you're replying to
  - Parse microformats2 from source
  - Cache reply contexts locally
- **Response Display** (facepile pattern)
  - Show likes/reposts as compact avatars
  - Display full replies with author info
  - Separate responses by type

**IndieWeb Specs:**
- W3C Webmention: https://www.w3.org/TR/webmention/
- Reply-context: https://indieweb.org/reply-context
- Response display: https://indieweb.org/responses
- Facepile: https://indieweb.org/facepile

**Completion Criteria:**
- Pass webmention.rocks test suite (21 tests)
- Successfully send/receive with 3+ IndieWeb sites
- Display reply contexts with proper h-cite markup
- Show incoming responses grouped by type

**User Value:**
Transform StarPunk from broadcast-only to conversational. Users can reply to other IndieWeb posts and see who's engaging with their content. Creates a decentralized comment system.

**Scope:** 8-10 weeks

---

## Option B: v1.3.0 "Studio" - Complete Micropub Media & Post Types

**Focus:** Full Micropub spec compliance with rich media and diverse post types

**What's Missing Now:**
- No media endpoint (can't upload images/audio/video)
- No update/delete via Micropub (create-only)
- No syndication targets
- Only supports notes (no articles, photos, bookmarks, etc.)
- No query support beyond basic config

**What You'll Get:**
- **Micropub Media Endpoint** (W3C Micropub spec section 3.7)
  - Accept multipart uploads for images/audio/video
  - Generate URLs for uploaded media
  - Return media URL to client for embedding
  - Basic image resizing/optimization
- **Micropub Updates/Deletes** (W3C Micropub spec sections 3.3-3.4)
  - Replace/add/delete specific properties
  - Full post deletion support
  - JSON syntax for complex updates
- **Post Type Discovery** (IndieWeb post-type-discovery)
  - Articles (with titles)
  - Photos (image-centric posts)
  - Bookmarks (link saving)
  - Likes (marking favorites)
  - Reposts (sharing others' content)
  - Audio/Video posts
- **Syndication Targets** (Micropub syndicate-to)
  - Configure external targets (Mastodon, Twitter bridges)
  - POSSE implementation
  - Return syndication URLs

**IndieWeb Specs:**
- W3C Micropub (complete): https://www.w3.org/TR/micropub/
- Post Type Discovery: https://indieweb.org/post-type-discovery
- POSSE: https://indieweb.org/POSSE

**Completion Criteria:**
- Pass micropub.rocks full test suite (not just create)
- Support all major post types with proper templates
- Successfully syndicate to 2+ external services
- Handle media uploads from mobile apps

**User Value:**
Use any Micropub client (Indigenous, Quill, etc.) with full features. Post photos from your phone, save bookmarks, like posts, all through standard clients. Syndicate to social media automatically.

**Scope:** 10-12 weeks

---

## Option C: v1.4.0 "Identity" - Complete Microformats2 & IndieAuth Provider

**Focus:** Become a full IndieWeb identity provider and improve content markup

**What's Missing Now:**
- Minimal h-entry markup (missing author, location, syndication)
- No h-card on pages (no author identity)
- No h-feed markup enhancements
- No rel=me verification
- Using external IndieAuth (not self-hosted)
- No authorization endpoint
- No token endpoint

**What You'll Get:**
- **Complete h-entry Microformats2** (microformats2 spec)
  - Author h-card embedded in each post
  - Location (p-location with h-geo/h-adr)
  - Syndication links (u-syndication)
  - In-reply-to markup (u-in-reply-to)
  - Categories/tags (p-category)
- **Author h-card** (microformats2 h-card)
  - Full profile page with h-card
  - Representative h-card on homepage
  - Contact info, bio, social links
  - rel=me links for verification
- **Enhanced h-feed** (microformats2 h-feed)
  - Feed name and author
  - Pagination with rel=prev/next
  - Feed photo/summary
- **IndieAuth Provider** (IndieAuth spec)
  - Authorization endpoint (login to other sites with your domain)
  - Token endpoint (issue access tokens)
  - Client registration support
  - Scope management
  - Token revocation interface

**IndieWeb Specs:**
- Microformats2: http://microformats.org/wiki/microformats2
- h-card: http://microformats.org/wiki/h-card
- h-entry: http://microformats.org/wiki/h-entry
- IndieAuth: https://indieauth.spec.indieweb.org/
- rel=me: https://indieweb.org/rel-me

**Completion Criteria:**
- Pass IndieWebify.me full validation
- Successfully authenticate to 5+ IndieWeb services
- Parse correctly in all major microformats2 parsers
- Provide IndieAuth to other sites (eat your own dogfood)

**User Value:**
Your site becomes your identity across the web. Log into any IndieWeb service with your domain. Rich markup makes your content parse perfectly everywhere. No dependency on external auth services.

**Scope:** 6-8 weeks

---

## Recommendation Rationale

Each option represents a fundamentally different IndieWeb capability:

- **Option A (Conversation)**: Makes StarPunk social and interactive
- **Option B (Studio)**: Makes StarPunk a complete publishing platform
- **Option C (Identity)**: Makes StarPunk an identity provider

All three are essential for "full IndieWeb support" but focus on different protocols:

- A focuses on **Webmention** (W3C Recommendation)
- B focuses on **Micropub** completion (W3C Recommendation)
- C focuses on **Microformats2** & **IndieAuth** (IndieWeb specs)

## Current Implementation Gaps Summary

Based on code analysis:

### Micropub (`starpunk/micropub.py`)
✅ Create notes (basic)
✅ Query config
✅ Query source
❌ Media endpoint
❌ Updates (replace/add/delete)
❌ Deletes
❌ Syndication targets
❌ Query for syndicate-to

### Microformats (templates)
✅ Basic h-entry (content, published date, URL)
✅ Basic h-feed wrapper
❌ Author h-card
❌ Complete h-entry properties
❌ rel=me links
❌ h-feed metadata

### Webmention
❌ No implementation at all

### IndieAuth
✅ Client (using indielogin.com)
❌ No provider capability

### Post Types
✅ Notes
❌ Articles, photos, bookmarks, likes, reposts, etc.

---

## Decision Factors

Consider these when choosing:

1. **User Demand**: What are users asking for most?
2. **Ecosystem Value**: Which adds most value to IndieWeb network?
3. **Technical Dependencies**: Option C (Identity) might benefit A & B
4. **Market Differentiation**: Which makes StarPunk unique?

All three options are genuinely different approaches to "full IndieWeb support" - the choice depends on priorities.