The Four-Feature Distributed Intelligence Network
Date: November 21, 2025 Status: Ideation / Brainstorming Phase Vision: A complete ecosystem for thinking, learning, creating, and connecting
Executive Summary
Write or Perish evolves from journaling app to distributed intelligence network with four core features:
- Effortless Journaling (Input) - Capture thoughts via text/voice
- Download (Consume) - User-aligned content recommendations from MemeOS
- Upload (Broadcast) - User-consented sharing of internal state to multiple channels
- Intention Market (Matchmaking) - Serendipitous connection through complementary needs/offerings
The Innovation: These four features create a closed loop where private reflection fuels public contribution, consumption informs creation, and expressed intentions enable serendipitous collaboration.
The Complete Architecture
Feature 1: Effortless Journaling (Already Exists)
Purpose: Capture thoughts with zero friction.
Current State:
- Text + voice input with tab-kill resumability for voice workflows
- Tree-structured conversations with LLMs
- Multi-model support (GPT-4o, GPT-4o-mini, Claude Sonnet 4.6, Claude Opus 4.6)
- Async processing for transcription, LLM, TTS (with SSE streaming for TTS)
- Version history
- Reflect/Orient workflows - Structured voice-first interaction modes for self-reflection and goal-setting with LLM-generated todos (#70). Converse workflow implemented but untested and currently disabled.
- Iterative profile generation - AI-powered analysis of user's full writing archive, with automatic profile updates after new entries (#71)
- System prompt management - Prompts page for viewing and editing AI system prompts (#72), with FK-linked prompt nodes (#73)
- Cmd+K keyword search - Global search with date filtering, diacritics-insensitive matching, and infinite scroll pagination
- Claude data export import - Import conversation history from Claude (#64)
- Dollar-cost tracking - Per-user API cost tracking via APICostLog (#61)
- Pin-to-profile - Pin selected nodes to user profile (#60)
- Cmd+Click to open nodes in new tab across all previews
Status: ✅ Production-ready, actively used, significantly expanded beyond basic journaling
Feature 2: Download - User-Aligned Content Recommendation (Designed)
Purpose: Surface relevant content from your bookmark archive when you need it.
How It Works:
- You write about topic X in journal
- System analyzes: current node + thread context + personal profile
- MemeOS integration surfaces bookmarks about X
- Ranking: 70% semantic relevance + 30% spaced repetition urgency
- "Related content you've saved" appears in sidebar
Value: Your writing context becomes the query for what to read next.
Status: 📋 Designed (see CHAT-AND-MEMEOS-ARCHITECTURE.md)
Feature 3: Upload - Broadcasting Internal State (NEW)
Purpose: Share your current internal state - needs, desires, intentions, opportunities - to appropriate audiences and channels.
3.1 Core Concept
Traditional Content Creation: "I will write a polished blog post and publish it"
- High activation energy
- Publishing pressure
- Perfectionism blocks sharing
Upload Feature: "I've been thinking about X, the system extracts the shareable essence and routes it appropriately"
- Low activation energy
- AI handles transformation
- Natural byproduct of journaling
3.2 What Gets Shared (Internal State Types)
1. Needs
- "I'm looking for..."
- "I need help with..."
- "I wish I could learn..."
- "I'm stuck on..."
Examples:
- "Looking for recommendations on managing remote teams"
- "Need a designer for a side project"
- "Wish I could find a thinking partner for exploring consciousness"
2. Desires
- "I want to..."
- "I'm hoping to..."
- "I'd love to..."
- "I'm aspiring toward..."
Examples:
- "Want to write a book about AI alignment"
- "Hoping to find a cofounder for climate tech startup"
- "Would love to collaborate on research about spaced repetition"
3. Intentions
- "I'm planning to..."
- "I'm committing to..."
- "I'm starting..."
- "I'm going to..."
Examples:
- "Planning to run daily for 100 days, starting tomorrow"
- "Committing to publishing weekly essays on decision-making"
- "Starting a study group on category theory"
4. Opportunities / Offerings
- "I can help with..."
- "I'm offering..."
- "I have capacity for..."
- "I'm looking to give..."
Examples:
- "Can help early-stage founders with growth strategy"
- "Offering free resume reviews for career changers"
- "Have capacity to mentor 2 people on technical writing"
5. Insights / Learnings
- "I've learned that..."
- "I've discovered..."
- "Here's what I know about..."
- "After X months of Y, I've realized..."
Examples:
- "After 6 months of daily meditation, I've learned these 3 things"
- "Discovered a framework for prioritizing tasks by energy level"
- "Here's what I know about building habits as someone with ADHD"
6. Questions / Explorations
- "I'm wondering about..."
- "I'm exploring..."
- "I'm confused by..."
- "How do you think about...?"
Examples:
- "I'm wondering if burnout is actually a signal, not a problem"
- "Exploring whether AI alignment is fundamentally a coordination problem"
- "How do you balance ambition with presence?"
3.3 Multi-Channel Distribution
The Innovation: Different content goes to different channels based on format, audience, and permanence.
Channel Types:
A. User-Defined Circles (Private → Semi-Public)
- Family
- Close friends
- Colleagues
- Professional network
- Accountability groups
B. External Publishing Platforms (Public)
Twitter/X (Short-form, high-velocity)
- Insights (1-3 sentences)
- Questions to audience
- Quick updates on progress/intentions
- Format: Thread or single tweet
- Frequency: As insights emerge
Substack/Newsletter (Long-form, low-velocity)
- Essays (1000+ words)
- Deep dives on topics
- Synthesized learnings over time
- Collections of related journal entries
- Format: Polished article
- Frequency: Weekly/monthly
LinkedIn (Professional, career-building)
- Career insights
- Professional learnings
- Thought leadership
- Format: 300-500 word post
- Frequency: 2-4x per month
Personal Blog/Website (Long-form, owned platform)
- Similar to Substack but self-hosted
- More control, more technical setup
GitHub Gists (Technical sharing)
- Code snippets with context
- Technical TILs (Today I Learned)
- Format: Code + explanation
C. Intention Market (Discovery platform within Write or Perish)
- Needs, desires, opportunities
- Structured for matchmaking (see Feature 4)
- Searchable and filterable
- Time-limited (intentions expire)
3.4 Tiered Sharing Model
Tier 1: Private Circles (Opt-in, named individuals)
Sharing to: Family (12 people)
Privacy: Only these specific people can see
Format: Can be raw, unpolished
Content: Personal updates, vulnerable shares
Tier 2: Semi-Public Circles (Opt-in, defined groups)
Sharing to: Professional Network (LinkedIn connections)
Privacy: Anyone in this group can see
Format: Polished, professional
Content: Career insights, learnings, opportunities
Tier 3: Fully Public (Opt-in, anyone can see)
Sharing to: Twitter / Substack / Intention Market
Privacy: Public, indexed, discoverable
Format: Highly polished, valuable
Content: Universal insights, offerings, questions
Progressive Disclosure:
- User starts with Tier 1 (private circles)
- Builds confidence and habits
- Gradually opts into Tier 2 (semi-public)
- Eventually explores Tier 3 (public)
- Can always move content between tiers
3.5 AI-Driven Content Routing
The System Analyzes:
- Content type - Is this a need? Insight? Question? Opportunity?
- Shareability - Is this complete enough to share?
- Audience fit - Who would benefit/resonate?
- Format fit - Tweet-sized? Essay-length? Technical?
- Channel match - Where should this go?
Routing Decision Tree:
Journal Entry: "I've been thinking about habit formation..."
│
├─> Contains universal insight?
│ YES → Extract key framework
│ │
│ ├─> Length?
│ │ SHORT (1-3 sentences) → Suggest Twitter
│ │ MEDIUM (2-3 paragraphs) → Suggest LinkedIn
│ │ LONG (1000+ words) → Suggest Substack
│ │
│ └─> Also suggest: Professional circle, Public feed
│
├─> Contains personal need?
│ YES → Extract need statement
│ │
│ └─> Suggest: Intention Market + Close friends circle
│
├─> Contains offering/opportunity?
│ YES → Extract opportunity
│ │
│ └─> Suggest: Intention Market + Professional network
│
└─> Raw processing/venting?
NO SHARE → Keep private
3.6 Example Flow: Journal → Multi-Channel
Scenario: You write a journal entry about your struggle with burnout.
Journal Entry (Private):
God, I'm so burnt out. Work is crushing me. Had another
panic attack today. Manager keeps piling on more. I can't
say no. I hate that I can't say no. Why am I like this?
[...500 more words of processing...]
Wait. Maybe the problem isn't that I'm weak. Maybe it's
that I've been treating my energy like it's infinite. Like
burnout is a personal failing instead of a system signal.
What if burnout is feedback? Like pain telling you to
stop touching the hot stove?
Three things I'm realizing:
1. Rest isn't optional, it's strategic
2. Boundaries are skills you build, not personality traits
3. Burnout is usually a mismatch between values and actions
I need to figure out what I actually value and whether
this job aligns. And I need to learn to say no.
AI Analysis:
{
"content_type": ["insight", "need"],
"shareability": 0.85,
"requires_transformation": true,
"privacy_concerns": ["mentions manager", "mentions panic attacks"],
"suggested_shares": [
{
"channel": "twitter",
"audience": "public",
"format": "short_thread",
"content": "After 6 months of burnout, 3 realizations:\n\n1. Rest isn't optional, it's strategic\n2. Boundaries are skills, not personality traits\n3. Burnout = mismatch between values and actions\n\nStill figuring this out, but these shifts helped.",
"reasoning": "Universal insight, actionable, vulnerable but resolved"
},
{
"channel": "linkedin",
"audience": "professional",
"format": "medium_post",
"content": "[300-word version with more context, less vulnerability]",
"reasoning": "Professional relevance, career insight"
},
{
"channel": "intention_market",
"audience": "public",
"format": "need",
"content": "Looking for: Thinking partners exploring the relationship between burnout and values alignment. Especially interested if you've navigated this transition.",
"reasoning": "Explicit need, could lead to valuable connections"
},
{
"channel": "family_circle",
"audience": "close_friends",
"format": "personal_update",
"content": "[More raw version, includes struggle context]",
"reasoning": "Inner circle can hold vulnerability"
}
]
}
User Sees:
💡 Your entry today could help others:
[Twitter] (Public)
After 6 months of burnout, 3 realizations:
1. Rest isn't optional, it's strategic
2. Boundaries are skills, not personality traits
3. Burnout = mismatch between values and actions
Still figuring this out, but these shifts helped.
[Share to Twitter] [Edit] [Dismiss]
---
[Intention Market] (Public)
Need: Thinking partners exploring burnout and values alignment
[Add to Market] [Edit] [Dismiss]
---
[Close Friends] (8 people)
[Shows more personal version with context about panic attacks]
[Share to Friends] [Edit] [Dismiss]
User approves all three → Content distributed to appropriate channels.
Results:
- Twitter: 47 people resonate, 3 share their own burnout stories
- Intention Market: 2 people reach out who are exploring similar questions
- Close Friends: Mom and 2 friends respond with support and advice
3.7 Cross-Platform Publishing Mechanics
Twitter Integration:
# User authorizes Twitter OAuth
# System can post on their behalf when they approve
POST /api/upload/twitter
{
"content": "After 6 months of burnout...",
"type": "thread" | "single",
"draft": false # If true, creates draft for manual posting
}
# Returns link to tweet/thread
# Stores reference in Share model
Substack Integration:
# System generates draft in Substack via API
# User can preview, edit, schedule in Substack directly
POST /api/upload/substack
{
"title": "What I Learned About Burnout",
"content": "[Full essay from multiple journal entries]",
"draft": true, # Always draft first
"notify_subscribers": false # User controls in Substack
}
# Returns link to Substack draft
Key Principle:
- Always create drafts first for external platforms
- User has final say before going live
- Can edit in native platform after export
- Link back to original journal entry
3.8 Collections & Synthesis
Multi-Entry Essays:
Sometimes a shareable insight emerges across multiple journal entries over weeks.
Example:
- Week 1: "Started thinking about habit formation"
- Week 2: "Realized habits are identity-based"
- Week 3: "Tested a new approach, it worked"
- Week 4: "Three principles I've discovered"
System suggests: "You've written 8 entries about habits over 4 weeks. There's a coherent narrative here. Want to synthesize into an essay?"
User approves → AI generates draft essay:
- Pulls key insights from all 8 entries
- Structures chronologically or thematically
- Adds transitions
- Creates introduction and conclusion
- Outputs 1500-word essay suitable for Substack
User edits and publishes.
Value: Your journal becomes the raw material for long-form content without additional writing burden.
3.9 Privacy & Consent (Critical)
Principles:
Explicit Opt-In
- Nothing shared without user approval
- Each channel requires separate authorization
- Can revoke channel access anytime
Granular Control
- Choose exactly what goes where
- Can edit before sharing
- Can un-share after publishing (within platform limits)
Privacy by Default
- Journal is private unless explicitly shared
- Suggestions are suggestions, not automatic actions
- Can disable suggestions entirely
Transparent Routing
- Always show which channels/audiences
- Preview exactly what will be shared
- Explain why system is suggesting each channel
Reputation Protection
- AI flags potentially controversial content
- Warns about professional reputation risks
- Requires extra confirmation for sensitive topics
Feature 4: Intention Market - Serendipitous Matchmaking (NEW)
Purpose: Create a dynamic marketplace of needs, offerings, and intentions that enables serendipitous collaboration.
4.1 Core Concept
Traditional Networking:
- You meet people randomly
- Exchange "what do you do?"
- Maybe find commonality, usually don't
- Weak signal of actual collaboration potential
Intention Market:
- You broadcast structured state (needs, offerings, intentions)
- System matches complementary intentions
- High signal of collaboration potential
- Serendipity through data
Analogy: It's like a bulletin board where everyone posts:
- "I'm looking for..."
- "I can help with..."
- "I'm exploring..."
- "I'm offering..."
And the system actively finds matches.
4.2 Structure of Intentions
Intention Types:
1. Needs (Seeking input/help)
{
"type": "need",
"user_id": 123,
"statement": "Looking for thinking partner to explore consciousness",
"details": "Interested in integrated information theory, panpsychism, and hard problem. Want to think through implications for AI.",
"topics": ["consciousness", "AI", "philosophy"],
"time_commitment": "1 hour/week",
"format": ["async writing", "video calls"],
"expires_at": "2025-12-21", // 30 days from creation
"visibility": "public"
}
2. Offerings (Providing help/value)
{
"type": "offering",
"user_id": 456,
"statement": "Can help early-stage founders with growth strategy",
"details": "10 years in B2B SaaS growth. Will review your strategy, give feedback, answer questions. No cost.",
"topics": ["startups", "growth", "B2B", "SaaS"],
"time_commitment": "2-3 hours/month",
"capacity": 3, // Can help 3 people
"spots_taken": 1,
"format": ["async", "video calls"],
"expires_at": "2025-12-21",
"visibility": "public"
}
3. Opportunities (Collaboration/projects)
{
"type": "opportunity",
"user_id": 789,
"statement": "Looking for cofounder for climate tech startup",
"details": "Building carbon accounting SaaS for SMBs. Have prototype, 5 beta customers. Need technical cofounder (full-stack). Funded, can pay market salary.",
"topics": ["climate", "startups", "engineering"],
"seeking": "technical cofounder",
"requirements": ["full-stack dev", "climate interest", "startup experience"],
"offering": ["equity", "salary", "funded runway"],
"expires_at": "2026-01-21", // Longer expiration for big opportunities
"visibility": "public"
}
4. Explorations (Thinking together)
{
"type": "exploration",
"user_id": 321,
"statement": "Exploring: Is burnout a signal or a problem?",
"details": "I've been reading about burnout as a mismatch between values and actions. Wondering if treating it as 'problem to solve' misses the message. Looking for others thinking about this.",
"topics": ["burnout", "work", "values", "meaning"],
"format": ["async discussion", "shared notes"],
"open_to": "anyone exploring similar questions",
"expires_at": "2025-12-21",
"visibility": "public"
}
5. Intentions (Commitments/accountability)
{
"type": "intention",
"user_id": 654,
"statement": "Committing to publish 12 essays in 12 months",
"details": "Writing about decision-making, mental models, and rationality. Publishing on Substack. Want accountability partners doing similar challenges.",
"topics": ["writing", "accountability", "rationality"],
"cadence": "monthly",
"start_date": "2025-11-21",
"end_date": "2026-11-21",
"looking_for": "accountability partners with similar goals",
"visibility": "public"
}
4.3 Matchmaking Algorithm
Three Types of Matches:
A. Complementary Matches (Need + Offering)
User A: "Need: Help with growth strategy"
User B: "Offering: Growth strategy consulting"
Match Score: 0.95
Reason: Direct need-offering match
Action: Notify both parties
B. Collaborative Matches (Similar explorations)
User C: "Exploring: Consciousness and AI"
User D: "Exploring: AI alignment and sentience"
Match Score: 0.82
Reason: Overlapping topics, complementary angles
Action: Suggest connection
C. Accountability Matches (Similar intentions)
User E: "Intention: Write 12 essays in 12 months"
User F: "Intention: Ship 1 project per month for a year"
Match Score: 0.75
Reason: Similar commitment structure, different domains
Action: Suggest accountability partnership
Matching Signals:
Semantic Similarity
- Embed intention statements
- Calculate cosine similarity
- Threshold: 0.7+ for suggestions
Topic Overlap
- Explicit tags/topics
- Must share at least 1 topic
- More overlap = higher score
Format Compatibility
- Both prefer "async writing" → +0.1
- Mismatch (one wants calls, other wants async) → -0.2
Time Compatibility
- Similar time commitments
- Complementary timezones (if relevant)
Reputation/Trust Signals
- How many past collaborations
- Feedback from previous matches
- Completion rate for intentions
Recency & Activity
- Newer intentions ranked higher
- Active users (recently posted) ranked higher
- Expired intentions excluded
Scoring Formula:
match_score = (
0.40 * semantic_similarity +
0.25 * topic_overlap +
0.15 * format_compatibility +
0.10 * time_compatibility +
0.10 * reputation_score
)
# Only suggest if match_score > 0.7
4.4 User Experience
Posting to Intention Market:
User writes in journal:
"I wish I could find someone to explore consciousness with.
I've been reading about IIT and panpsychism but don't have
anyone to think through the implications with."
System suggests:
💡 This sounds like an intention to share!
[Intention Market] (Public)
Intention: Looking for thinking partner to explore consciousness
Details: Interested in integrated information theory,
panpsychism, hard problem of consciousness. Want to think
through implications for AI and ethics.
Time: ~1 hour/week, async discussion or video calls
Topics: #consciousness #AI #philosophy
This will be visible to all users. People with similar
interests will be notified.
[Post to Market] [Edit] [Dismiss]
Receiving a Match:
Notification:
🎯 We found a match for your intention!
You posted: "Looking for thinking partner to explore consciousness"
@alex posted: "Exploring: How does consciousness relate to AI alignment?"
Match: 87% (high overlap in topics and interests)
Alex's background:
- AI researcher, philosophy hobbyist
- Written 15 entries about consciousness
- Currently exploring: panpsychism, integrated information theory
[View Full Profile] [Connect] [Pass]
Connection Flow:
User clicks "Connect"
System creates introduction:
Alex, meet Jordan. Jordan, meet Alex. You both posted intentions about consciousness: Jordan: "Looking for thinking partner to explore consciousness" Alex: "Exploring: How does consciousness relate to AI alignment?" Your overlapping interests: - Integrated information theory - AI alignment and sentience - Philosophy of mind We think you'd have interesting conversations. This connection is private. You can: - Exchange writing (share journal entries) - Schedule calls - Create shared exploration thread [Start Conversation]Both users get private thread in Write or Perish
Can exchange messages, share journal entries, schedule calls
After collaboration:
- Can leave feedback (optional)
- Can continue connection or close it
- Can make public what emerged (optional)
4.5 Market Views
Browse View:
User can browse all active intentions by:
- Type (needs, offerings, opportunities, explorations, intentions)
- Topic (#AI, #writing, #startups, #philosophy, etc.)
- Recency (newest first)
- Match score (if they have posted intentions)
Feed View:
Personalized feed based on:
- User's own posted intentions (show matches)
- User's topics of interest (from profile)
- User's writing patterns (from journal analysis)
Search View:
Free-text search across all intentions:
- "looking for cofounder"
- "help with growth"
- "exploring consciousness"
- "accountability partner"
4.6 Expiration & Freshness
Why Intentions Expire:
- Needs get met (no longer looking)
- Offerings get filled (capacity reached)
- Explorations conclude (moved on to other topics)
- Intentions complete (goal achieved)
- Market stays fresh (no stale listings)
Default Expiration:
- Needs: 30 days
- Offerings: 30 days (or when capacity filled)
- Opportunities: 60 days
- Explorations: 30 days
- Intentions: Duration of commitment (e.g., 365 days for yearly goal)
Renewal Prompts:
Your intention "Looking for cofounder" expires in 3 days.
Status: You've connected with 5 people, 2 active conversations
[Renew for 30 more days] [Mark as Fulfilled] [Let Expire]
4.7 Success Stories & Feedback Loop
Track Outcomes:
Intention: "Looking for growth advice"
→ Matched with User B (offering growth consulting)
→ 3 calls scheduled
→ User feedback: "Extremely helpful, changed my strategy"
→ Outcome: Successful match
Learn from Patterns:
- Which types of intentions get most matches?
- Which topics have highest successful collaboration rate?
- Which users are best at creating value in matches?
- What time commitments work best?
Improve Matching:
- Upweight factors that predict successful collaborations
- Downweight factors that don't matter
- Identify "super-connectors" (good at helping others)
4.8 Community Norms & Moderation
Guidelines for Posting:
Be Specific
- Bad: "Want to learn stuff"
- Good: "Want to learn Rust, especially async programming"
Offer Context
- Bad: "Need help"
- Good: "Need help designing database schema for multi-tenant SaaS"
Respect Time
- Always specify time commitment
- Honor commitments you make
- Communicate if things change
Give More Than You Take
- Post offerings, not just needs
- Help others when you can
- Share what you learn
Be Authentic
- Post real needs/offerings
- Don't spam the market
- Don't post for status
Moderation:
- User reporting for spam/abuse
- AI flags low-quality or vague intentions
- Reputation system (see next section)
4.9 Reputation & Trust
Reputation Signals:
class UserReputation:
# Completion rate
intentions_posted = 12
intentions_fulfilled = 9 # 75% completion rate
# Responsiveness
average_response_time = "4 hours"
response_rate = 0.92 # Replies to 92% of matches
# Value created
matches_initiated = 15
successful_collaborations = 8 # As rated by partners
feedback_score = 4.6 # Out of 5
# Giving vs. taking
offerings_posted = 8
needs_posted = 4
giving_ratio = 2.0 # Gives 2x more than takes
Display on Profile:
@alex
- 8 successful collaborations (94% positive feedback)
- Usually responds within 4 hours
- Strong track record helping with: growth, startups, writing
- Currently has capacity to help 2 more people
Use in Matching:
- Higher reputation users shown first
- Low reputation users (new or poor track record) shown with caution
- Super-connectors highlighted
Earned Over Time:
- New users start neutral
- Build reputation through successful matches
- Maintain reputation through responsiveness
- Lose reputation through flaking or poor feedback
4.10 Advanced Features
1. Group Matchmaking
Instead of 1:1 matches, form groups:
5 users all posted: "Intention: Daily writing habit"
System suggests: "Want to form an accountability group?"
[Form Group of 5]
- Daily check-ins
- Shared progress tracking
- Peer support
2. Event Creation
From market intentions to organized events:
8 users in Bay Area posted about "exploring consciousness"
System suggests: "Want to organize a meetup?"
[Create Event]
- Date/time TBD (poll attendees)
- Location: SF
- Format: Discussion + shared readings
3. Project Boards
Long-term collaborations need structure:
Matched for: "Build climate tech project together"
[Create Project Board]
- Shared tasks
- Timeline
- Resources
- Meeting notes (integrated with Write or Perish journals)
4. Referrals
You posted: "Need help with growth strategy"
You matched with User B
User B helped you
System: "Know someone else who'd benefit from User B's help?"
[Refer a Friend]
5. Market Analytics (Public)
Intention Market Stats:
- 234 active intentions
- 89 matches this week
- Most common topics: #AI (45), #writing (32), #startups (28)
- Highest success rate: Accountability partnerships (87%)
- Average match score: 0.76
Transparency builds trust and helps users understand market dynamics.
How The Four Features Work Together
The Complete Flywheel
1. JOURNAL (Feature 1)
Write about challenges, insights, questions
↓
2. DOWNLOAD (Feature 2)
System surfaces relevant bookmarks from MemeOS
You consume, learn, get inspired
↓
3. Process in JOURNAL
Synthesize readings with your thinking
New insights emerge
↓
4. UPLOAD (Feature 3)
System suggests sharing insights to appropriate channels
- Tweet the framework
- Essay on Substack
- Update to close friends
↓
5. INTENTION MARKET (Feature 4)
Extract needs/offerings from your writing
- Post: "Looking for feedback on this framework"
- Match with people who can help or benefit
↓
6. CONNECTIONS FORM
Matched users exchange ideas
Collaborations begin
↓
7. Back to JOURNAL
Write about collaboration, new questions emerge
↓
CYCLE REPEATS
Example: Complete Journey
Week 1: Journal (Feature 1)
"I'm struggling with burnout. Reading about it but
nothing seems to help. Maybe I'm approaching it wrong?"
Week 1: Download (Feature 2)
System surfaces from MemeOS:
- Article on burnout as system signal (saved 3 months ago)
- Podcast on values alignment (saved 1 month ago)
- Thread on boundaries as skills (saved 2 weeks ago)
You read/listen, insights click.
Week 2: Journal
"OH. Burnout isn't a personal failing, it's a mismatch
between values and actions. That's why rest alone doesn't
fix it. I need to examine what I actually value."
[Journal 3 more entries exploring this]
Realize: I value autonomy, but job is micromanaged.
That's the root cause.
Week 2: Upload (Feature 3)
System suggests:
[Twitter] "After 6 months of burnout, realized: it's not
about rest, it's about values alignment. Most burnout is
a mismatch between what you value and what you're doing."
[LinkedIn] Essay: "Burnout as Signal: What Your Exhaustion
Is Trying to Tell You"
[Intention Market] "Looking for: Others who've navigated
burnout → career transition. Want to think through next steps."
You approve all three.
Week 3: Intention Market (Feature 4)
Match found!
@sam posted: "Recently left corporate job due to burnout,
now consulting. Happy to share what I learned."
You connect. Have 3 conversations.
Sam shares their framework for evaluating next career moves.
Week 4: Journal
"Conversations with Sam were so helpful. Their framework
is brilliant:
1. List your top 3 values
2. Rate current job on each (1-10)
3. Identify what would be a 10 for each
4. Look for roles that match
Applied it. Realized I need: autonomy, impact, learning.
Current job: 3, 5, 4.
Consulting might be: 9, 7, 8.
I think I know what to do."
Week 4: Upload
[Substack Essay] "A Framework for Career Decisions When
You're Burnt Out" (synthesizes your journey + Sam's framework)
[Twitter] "Want to thank @sam for helping me think through
burnout → career transition. Their values-based framework
changed everything. Here's what I learned..."
[Intention Market] "Offering: Happy to share values-based
career framework with others navigating burnout. Paying
forward @sam's help. Capacity for 3 people."
Week 5: Intention Market
3 matches on your offering.
You help 3 people think through their career decisions.
Each conversation sparks new insights for you.
Back to journal to process.
Result:
- Personal growth through journaling
- Learning through curated content
- Sharing through multiple channels
- Connection through intention market
- Contribution by helping others
- Continuous insight generation
The flywheel accelerates.
Technical Architecture
Data Models
# Feature 3: Upload
class Share(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
node_id = db.Column(db.Integer, db.ForeignKey("node.id"))
# Content
original_content = db.Column(db.Text)
transformed_content = db.Column(db.Text)
# Channels (can share to multiple)
channels = db.Column(db.ARRAY(db.String)) # ["twitter", "linkedin", "substack"]
# External references
twitter_url = db.Column(db.String)
linkedin_url = db.Column(db.String)
substack_url = db.Column(db.String)
# Audience
audience_tier = db.Column(db.String) # "private_circle", "semi_public", "public"
audience_ids = db.Column(db.ARRAY(db.Integer)) # Specific users if private
# Metadata
content_type = db.Column(db.String) # "insight", "need", "offering", etc.
topics = db.Column(db.ARRAY(db.String))
# Status
status = db.Column(db.String) # "suggested", "approved", "published", "deleted"
published_at = db.Column(db.DateTime)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
# Feature 4: Intention Market
class Intention(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
node_id = db.Column(db.Integer, db.ForeignKey("node.id")) # Source journal entry
# Core fields
type = db.Column(db.String) # "need", "offering", "opportunity", "exploration", "intention"
statement = db.Column(db.String(500)) # Short headline
details = db.Column(db.Text) # Full description
# Matching metadata
topics = db.Column(db.ARRAY(db.String))
embedding = db.Column(Vector(1536)) # For semantic matching
# Logistics
time_commitment = db.Column(db.String) # "1 hour/week"
format_preferences = db.Column(db.ARRAY(db.String)) # ["async", "video calls"]
capacity = db.Column(db.Integer) # For offerings (how many people can you help)
spots_taken = db.Column(db.Integer, default=0)
# Lifecycle
status = db.Column(db.String) # "active", "fulfilled", "expired", "cancelled"
posted_at = db.Column(db.DateTime, default=datetime.utcnow)
expires_at = db.Column(db.DateTime)
fulfilled_at = db.Column(db.DateTime)
# Visibility
visibility = db.Column(db.String) # "public", "network", "private"
class Match(db.Model):
id = db.Column(db.Integer, primary_key=True)
intention_a_id = db.Column(db.Integer, db.ForeignKey("intention.id"))
intention_b_id = db.Column(db.Integer, db.ForeignKey("intention.id"))
user_a_id = db.Column(db.Integer, db.ForeignKey("user.id"))
user_b_id = db.Column(db.Integer, db.ForeignKey("user.id"))
# Matching
match_score = db.Column(db.Float)
match_reason = db.Column(db.Text) # Explanation of why they matched
match_type = db.Column(db.String) # "complementary", "collaborative", "accountability"
# Status
status = db.Column(db.String) # "suggested", "accepted", "active", "completed", "cancelled"
suggested_at = db.Column(db.DateTime, default=datetime.utcnow)
accepted_at = db.Column(db.DateTime)
completed_at = db.Column(db.DateTime)
# Outcome
feedback_a = db.Column(db.Float) # Rating from user A (1-5)
feedback_b = db.Column(db.Float) # Rating from user B
feedback_text_a = db.Column(db.Text)
feedback_text_b = db.Column(db.Text)
outcome = db.Column(db.String) # "successful", "unsuccessful", "ongoing"
class Connection(db.Model):
"""Tracks connections formed through matches"""
id = db.Column(db.Integer, primary_key=True)
user_a_id = db.Column(db.Integer, db.ForeignKey("user.id"))
user_b_id = db.Column(db.Integer, db.ForeignKey("user.id"))
# Origin
match_id = db.Column(db.Integer, db.ForeignKey("match.id"))
# Type
connection_type = db.Column(db.String) # "accountability", "collaboration", "mentorship"
# Activity
last_interaction = db.Column(db.DateTime)
interaction_count = db.Column(db.Integer, default=0)
# Status
status = db.Column(db.String) # "active", "completed", "inactive"
created_at = db.Column(db.DateTime, default=datetime.utcnow)
API Endpoints
# Feature 3: Upload
POST /api/upload/analyze # Analyze node for sharing opportunities
POST /api/upload/channels # Share to specific channels
GET /api/upload/suggestions # Get pending share suggestions
PUT /api/upload/:id/approve # Approve share
DELETE /api/upload/:id # Delete/unshare
# External integrations
POST /api/upload/twitter # Post to Twitter
POST /api/upload/linkedin # Post to LinkedIn
POST /api/upload/substack # Create Substack draft
GET /api/upload/oauth/twitter # OAuth flow for Twitter
GET /api/upload/oauth/linkedin # OAuth flow for LinkedIn
# Feature 4: Intention Market
POST /api/intentions # Create intention
GET /api/intentions # Browse market
GET /api/intentions/:id # Get specific intention
PUT /api/intentions/:id # Update intention
DELETE /api/intentions/:id # Cancel intention
GET /api/intentions/matches # Get matches for my intentions
POST /api/intentions/search # Search market
GET /api/intentions/feed # Personalized feed
# Matching
POST /api/matches/:id/accept # Accept a match
POST /api/matches/:id/decline # Decline a match
PUT /api/matches/:id/feedback # Leave feedback after collaboration
GET /api/matches # My active matches
# Connections
GET /api/connections # My connections
GET /api/connections/:id # Connection details
POST /api/connections/:id/message # Message in connection thread
Business Model
Monetization Strategy
Free Tier:
- Unlimited journaling
- Basic sharing to circles (manual)
- View intention market (read-only)
- Limited downloads (10 MemeOS recommendations/month)
Premium Tier ($15/month):
- AI-powered share suggestions
- Multi-channel publishing (Twitter, LinkedIn, Substack)
- Post to intention market (unlimited)
- Unlimited MemeOS recommendations
- Advanced matching (get notified of matches)
- 5 active connections
Pro Tier ($30/month):
- Everything in Premium
- Auto-sharing mode
- Unlimited active connections
- Priority matching (shown first)
- Group matchmaking
- Analytics dashboard
- API access
Value Proposition by Tier
Free → Premium ($15/mo): "Upgrade to share your insights effortlessly and find collaborators through the intention market"
Premium → Pro ($30/mo): "Upgrade for unlimited connections and priority matching"
Network Effects
Single-Player Value:
- Feature 1 (Journaling): Works alone
- Feature 2 (Download): Works alone (with MemeOS)
- Feature 3 (Upload): Partly works alone (can publish without audience)
Multi-Player Value:
- Feature 4 (Intention Market): Requires network
- But: Even 100 active users creates significant value
- And: Grows exponentially with network size
Cold Start Strategy:
- Launch Features 1-3 first (single-player value)
- Build user base (waitlist, invite-only)
- Launch Feature 4 when 500+ users (critical mass)
- Growth through word-of-mouth (successful matches invite friends)
Open Questions
Product Design
Share Approval
- Should all shares require approval, or trust AI after learning preferences?
- What's the balance between friction (safe) and effortless (risky)?
Channel Priorities
- If AI suggests 3 channels for same content, does user pick one or all?
- How to avoid overwhelming user with too many suggestions?
Intention Expiration
- Should system auto-renew popular intentions?
- How to handle "evergreen" offerings (always have capacity)?
Match Volume
- How many matches to suggest per user per week?
- Too many = overwhelming, too few = limited serendipity
Connection Management
- Should there be a limit on active connections?
- How to transition from matched → connected → collaboration?
Technical
Substack Integration
- Substack API has limitations - is email export + manual import acceptable?
- Or build custom Substack-like feature in Write or Perish?
Twitter Rate Limits
- Twitter API restricts posting - how to handle if user is active?
- Queue system? Rate limiting notifications?
Embeddings Cost
- Embed every intention (ongoing cost)
- Batch embedding vs. real-time?
Matching Performance
- With 10k intentions, how fast can we match?
- Precompute recommendations or on-demand?
Community
Moderation
- Human moderators or AI-only?
- How to handle spam in intention market?
- Report system design?
Norms
- How to encourage high-quality intentions?
- How to discourage low-effort posts?
- Should there be "karma" or reputation beyond feedback?
Collaboration Accountability
- If someone matches but never responds, what happens?
- Reputation penalties for flaking?
Privacy & Safety
Public Sharing Risks
- What if someone posts something they regret to Twitter?
- How to warn without being paternalistic?
Doxxing Prevention
- Intention market profiles show location?
- How much info to reveal before connection?
Harassment
- Block users from seeing your intentions?
- Report inappropriate match requests?
Success Metrics
Feature 3: Upload
Engagement:
- % of journal entries that generate share suggestions
- % of suggestions accepted
- Time from suggestion to approval (lower = more effortless)
Value:
- External engagement (Twitter likes, LinkedIn comments, Substack subscribers)
- User-reported value ("Did sharing this help others?")
Don't Measure:
- Total shares (incentivizes over-sharing)
- Vanity metrics (follower counts)
Feature 4: Intention Market
Participation:
- % of users who post intentions
- Intentions per active user per month
- Balance of needs vs. offerings (goal: 60% offerings, 40% needs)
Matching:
- Match success rate (suggested → accepted)
- Time to first match (how fast do people find matches)
- Match quality (feedback scores)
Outcomes:
- Collaboration completion rate
- User-reported value ("Did this match help you?")
- Repeat collaboration rate (matched users work together again)
Don't Measure:
- Total intentions (incentivizes spam)
- Match volume alone (quality > quantity)
Combined
Flywheel Metrics:
- % of users using all 4 features
- Time from journal → share → match → journal cycle
- Retention by feature usage (more features = higher retention?)
Qualitative:
- "Has Write or Perish helped you connect with valuable people?"
- "Have your journal insights helped others?"
- "Have collaborations led to real-world outcomes?" (projects, friendships, opportunities)
Conclusion
The four-feature ecosystem creates a complete loop for thinking, learning, creating, and connecting:
- Effortless Journaling - Capture raw thoughts
- Download - Learn from curated content
- Upload - Share refined insights to the world
- Intention Market - Find collaborators and opportunities
Each feature enhances the others:
- Journaling generates content for Upload
- Upload creates visibility for Market
- Market creates connections that inspire more Journaling
- Download informs what you write about
The result: A platform where:
- Private reflection fuels public contribution
- Consumption informs creation
- Serendipitous collaboration emerges from expressed intentions
- Value flows in all directions (consume, create, share, connect)
This has never been built before.
Most platforms optimize for one thing:
- Twitter: Broadcasting
- Substack: Publishing
- LinkedIn: Professional networking
- Meetup: Events
Write or Perish integrates them all, rooted in authentic private journaling.
Next steps:
- Validate assumptions with potential users
- Design UI mockups for all 4 features
- Answer open questions above
- Build Feature 3 (Upload) first - it's valuable even without Feature 4
- Launch Feature 4 (Market) when user base reaches critical mass
This could fundamentally change how knowledge work happens: from isolated individuals to distributed intelligence network.
Let's build it.