Naidis

Product Requirements Document

Naidis PRD - Raycast for Obsidian, Unified PKM Workstation

Obsidian Unified Launcher PRD

"Raycast for Obsidian" - Unified PKM Workstation

Version: 2.0
Date: 2026-01-17
Status: Planning Phase


1. Executive Summary

1.1 Problem Definition

The Obsidian plugin ecosystem is fragmented:

  • Separate plugins are needed for Web Clipper, YouTube Transcript, AI Chat, RSS Reader, etc.
  • Different UI/UX, different settings, and different shortcuts for each plugin.
  • Users must combine 5-10 plugins to configure a complete workflow.
  • Issues arise with updates, version management, and compatibility of each plugin.

Key Pain Point:

"To organize a YouTube video in Obsidian, I need 3 plugins: Media Extended + YTranscript + AI, and I have to configure each one separately."

1.2 Solution

A product that provides a Raycast-style unified Command Palette:

  • Cmd+Shift+P → Perform all PKM tasks in a single interface.
  • Built-in key features: Web Clip, YouTube Transcript, AI Chat, RSS, etc.
  • Integration with external services (Wallabag, Hoarder/Karakeep, Readwise).
  • 100% Local-first + optional cloud synchronization.

1.3 Business Model: Reverse Open Core

┌─────────────────────────────────────────────────────────────┐
│  unified-launcher-core (Rust)                    [MIT OSS]  │
│  ─────────────────────────────────────────────────────────  │
│  • PDF parsing/OCR/table extraction                         │
│  • YouTube transcript extraction                            │
│  • RSS feed parsing                                         │
│  • Local LLM inference (llama.cpp)                          │
│  • Semantic search/embedding (tantivy)                      │
│  • Wallabag/Hoarder API client                              │
│  • JSON-RPC API exposure                                    │
└─────────────────────────────────────────────────────────────┘

                              │ IPC (JSON-RPC over stdio)

┌─────────────────────────────────────────────────────────────┐
│  unified-launcher-obsidian (TypeScript)         [Paid $29]  │
│  ─────────────────────────────────────────────────────────  │
│  • Raycast-style Command Palette UI                        │
│  • Polished UI for each module                              │
│  • Obsidian Vault integration                               │
│  • Settings screen                                          │
│  • Auto-updates                                             │
│  • Premium support                                          │
└─────────────────────────────────────────────────────────────┘

1.4 Why this structure?

Traditional Open CoreOur Reverse Open Core
UI/Basic features = Free OSSBackend/Engine = Free OSS
Advanced backend = PaidFrontend/UX = Paid
Problem: Pro features have free alternativesAdvantage: Engine is verifiable, UI is behind paywall

Key Insights:

  • Backend alone is useless → UI is the actual value.
  • Open source engine → Technical trust, security verification possible.
  • Paid UI → Reward for polished UX, support, and updates.

1.5 Positioning

CompetitorProblemOur Differentiation
Readwise Reader$9.99/mo subscription, cloud dependencyOne-time $29, local-first, OSS engine
Smart ConnectionsSwitched to paid, frequent UI changes, slowStable UI, high-performance Rust backend
Individual Plugin ComboFragmented, complex settingsUnified UI, Zero Config
OmnivoreService terminatedOSS Engine = Usable forever

2. Market Analysis

2.1 Competitor App Feature Matrix (Read-it-later / PKM)

FeatureReadwise ReaderOmnivore (Ended)WallabagHoarder/KarakeepShioriLinkding
Price$9.99/moFree (Ended)Free self-hostedFree self-hostedFreeFree
Web Clipping
PDF Storage
Highlighting
AI Summary
AI Tagging
OCR
Mobile App
Obsidian Sync✅ (Official)✅ (Official)✅ (Community)
Self-hosting
RSS Reader
YouTube Support

2.2 Obsidian Plugin Ecosystem Status

2.2.1 Web Clipper Category

PluginDownloadsGitHub StarsKey FeaturesProblems
Obsidian Web Clipper (Official)300K+N/ABrowser extension, highlight, AI interpretationiOS compatibility issues, subfolder save bug
Readwise Official203,384313Kindle/Pocket sync, Jinja2 templateExternal subscription required, one-way sync
Omnivore128,507872Highlight import, AI featuresService terminated (2024)

2.2.2 YouTube/Media Category

PluginDownloadsGitHub StarsKey FeaturesProblems
Media Extended274,406808Inline timestamp, screenshot, playback controlYouTube Error 153, unplayable for 1-2 months
YTranscript34,429162Transcript extraction, side panel, clickable timestamps21 open issues, formatting problems
Timestamp Notes23,083222Parallel video+note view, timestamp buttonNo updates for 3 years (v1.0.8)
YTSummarizer75017OpenAI-based AI summary, multi-lang subtitlesNew, lack of testing

2.2.3 AI/LLM Category

PluginDownloadsGitHub StarsKey FeaturesProblems
Copilot969,9815,919Chat, Vault QA, multi-model, web searchSevere lag, UI freezing, 163 issues
Smart Connections790,2884,457Semantic embedding, related notes, 100+ API supportSwitched to paid, frequent UI changes, 448 issues, very slow
Khoj50,4703,218Self-hosted, semantic search, custom agentsSeparate server required, complex setup
Smart Second Brain53,803964RAG pipeline, local/cloud modelLack of UI polish

2.2.4 RSS Category

PluginDownloadsGitHub StarsKey FeaturesProblems
RSS ReaderN/A432RSS feed reading within ObsidianArchived in Aug 2025
RSS CopyistN/AN/AAutomatic article import, per-feed settingsLow awareness
Simple RSSN/A31Basic RSS featuresFeature deficiency

2.2.5 PDF Category

PluginDownloadsGitHub StarsKey FeaturesProblems
PDF++432,4621,892Vim keybindings, backlinks, annotation export113 issues, high learning curve
Omnisearch1,200,2111,770PDF+OCR indexing, image searchUnstable PDF extraction, 85 issues
PDF Highlights103,603209Highlight/underline/annotation extractionExtraction failure on specific PDFs

2.3 Market Vacancy (Critical Gaps)

Key unresolved problems discovered through research:

High Priority Gaps (Clear Demand + No Competition)

  1. Unified AI Workspace

    • Combine Copilot (Chat) + Smart Connections (Link) + Khoj (Search) into one
    • Visual RAG (Display source notes as clickable links)
    • Context window relevance scoring
  2. AI-powered Video Note Assistant

    • One-click transcript + chapter detection + AI summary
    • Integrated workflow for screenshot + timestamp + summary
    • Local processing (no API limits)
  3. Unified RSS/Newsletter Manager

    • Unified RSS + Substack + Email newsletters
    • Import after AI summarization
    • Smart filtering and deduplication
  4. Enhanced PDF Processing

    • Table → Markdown conversion
    • Batch annotation processing
    • EPUB import (preserving annotations)

Medium Priority Gaps

  1. Plugin Permission Manager - Network blocking, data access logs
  2. Image Processing Suite - Resizing, OCR, automatic alt text
  3. Canvas Enhancement - Free drawing, presentation mode

3. Product Design

3.1 Core Concept: "Raycast for Obsidian"

Perform all tasks with one Cmd+Shift+P, just like Raycast:

┌────────────────────────────────────────────────────────────┐
│  🔍 Type a command...                                      │
├────────────────────────────────────────────────────────────┤
│  📎 Clip URL          Save current URL to vault            │
│  🎥 YouTube           Import video with transcript         │
│  💬 AI Chat           Chat with your notes                 │
│  📰 RSS               Check new articles                   │
│  📄 PDF               Process PDF document                 │
│  🔗 Wallabag          Sync from Wallabag                   │
│  ⚙️ Settings          Configure Unified Launcher           │
└────────────────────────────────────────────────────────────┘

3.2 Architecture: Backend OSS + Frontend Paid (HTTP Server)

┌─────────────────────────────────────────────────────────────┐
│                     Clients (Paid App)                        │
├─────────────────────────────────────────────────────────────┤
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │  Obsidian    │  │  Obsidian    │  │  Web App     │       │
│  │  Desktop     │  │  Mobile      │  │  (Future)    │       │
│  │  [$29]       │  │  [$29]       │  │              │       │
│  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘       │
│         │                 │                 │               │
│         └─────────────────┼─────────────────┘               │
│                           │                                 │
│                      HTTP REST API                          │
│                           │                                 │
└───────────────────────────┼─────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│            naidis-core [MIT OPEN SOURCE]                    │
│            HTTP Server (axum) - Port 21420                  │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────────────────────────────────────────────────┐│
│  │  REST API Endpoints                                     ││
│  │  • POST /api/youtube/extract                            ││
│  │  • POST /api/webclip/extract                            ││
│  │  • POST /api/rss/fetch                                  ││
│  │  • POST /api/pdf/extract                                ││
│  │  • POST /api/ai/{chat,summarize,rag}                    ││
│  │  • POST /api/{wallabag,hoarder,readwise}/sync           ││
│  │  • GET  /health                                         ││
│  └─────────────────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────────────────┐│
│  │  Content Processing                                     ││
│  │  • YouTube transcript extraction (yt-dlp)               ││
│  │  • PDF parsing + OCR (pdf-extract, tesseract)           ││
│  │  • Web content extraction (readability)                 ││
│  │  • RSS/Atom feed parsing                                ││
│  └─────────────────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────────────────┐│
│  │  AI/ML Processing                                       ││
│  │  • Local LLM inference (Ollama)                         ││
│  │  • Embedding generation (fastembed-rs)                  ││
│  │  • RAG pipeline                                         ││
│  └─────────────────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────────────────┐│
│  │  External Integrations                                  ││
│  │  • Wallabag / Hoarder / Readwise API clients            ││
│  └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘

Deployment Options:
┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│  Local Run      │  │  Docker         │  │  Self-hosting    │
│  (Desktop)      │  │  (Home Server)  │  │  (VPS/Cloud)    │
│                 │  │                 │  │                 │
│  localhost:     │  │  docker-compose │  │  External IP:   │
│  21420          │  │  up -d          │  │  21420          │
└─────────────────┘  └─────────────────┘  └─────────────────┘

3.2.1 Mobile Support

PlatformSupport Method
DesktopRun local server or connect to remote server
Mobile (iOS/Android)Connect to self-hosted server (Docker recommended)
WebFuture support planned

Mobile Usage Scenario:

  1. Deploy naidis-core via Docker on home server/VPS.
  2. Enter server URL in Obsidian Mobile settings.
  3. Use all features including YouTube/RSS/Web Clip even from outside.

3.3 Why this structure works?

Advantages of Open Source Backend

AdvantageDescription
Technical Trust"Engine is open source, verifiable" → Resolves security/privacy concerns
Community ContributionCan secure contributors to the Rust backend
Ecosystem ExpansionOther developers can create different apps with this backend
Fork InsuranceCommunity can continue even if the project is discontinued

Justification for Paid Frontend

PointDescription
Backend alone is uselessCan be used via CLI, but no UX
Polished UXRaycast-level UI requires significant effort
Support & UpdatesBug fixes, new features, Obsidian version compatibility
Build BarrierBackend can be built, but it's meaningless without UI

Risk Analysis of "Free UI" Emergence

To create a free UI:
1. Understand Rust backend protocol
2. Implement JSON-RPC client
3. Learn Obsidian plugin API
4. Implement Raycast-level UX
5. Continuous maintenance

→ Motivation to do this "for free"? Almost none.
→ Even if it exists, official UI wins in quality/maintenance.

3.4 Rust Backend Tech Stack

FeatureLibraryReason for Choice
LLM Inferencellama-cpp-rsllama.cpp bindings, GGUF model support
Embeddingfastembed-rsFast local embedding, ONNX runtime
Search IndextantivyRust-native full-text search
PDF Parsingpdf-extract, lopdfText/table extraction
OCRtesseract-rsTesseract bindings
YouTubeyt-dlp (subprocess)Transcript/metadata extraction
RSSfeed-rsAtom/RSS parsing
HTTPreqwestExternal API calls
IPCjsonrpc-coreJSON-RPC server
AsynctokioAsync runtime

3.5 UI/UX Design Principles

  1. Zero Config: Works immediately upon installation, advanced settings are optional
  2. Keyboard First: All tasks possible without a mouse
  3. Progressive Disclosure: Simple by default, reveal advanced features as needed
  4. Native Feel: Adhere to Obsidian's native design language
  5. Offline First: Core features work without a network

4. Functional Specifications

4.1 Features by Module

ModuleFeatureBackend (OSS)Frontend (Paid)
Command PaletteUnified Launcher-Fuzzy search, keyboard navigation
YouTubeVideo OrganizationTranscript extraction, AI chapter detection, summaryTimestamp UI, player, note generation
PDFDocument ProcessingText/table extraction, OCRViewer, annotation UI, highlighting
AI ChatNote QALLM inference, RAG, embeddingChat UI, source display, history
RSSFeed SubscriptionFeed parsing, article extractionFeed list, reading view, save
Web ClipWeb SavingContent extraction, metadataPreview, template selection, save
External SyncExternal IntegrationWallabag/Hoarder APISync UI, conflict resolution

4.2 User Scenarios

Scenario 1: Organizing YouTube Videos

1. Cmd+Shift+P → Type "youtube"
2. Paste URL
3. Backend:
   - Extract transcripts (yt-dlp)
   - AI chapter detection (LLM)
   - Generate summary (LLM)
4. Frontend:
   - Display video embed
   - Render timestamp list
   - Display per-chapter summary
5. Click → Jump to that time
6. "Save" → Create note

Scenario 2: Searching Notes via AI Chat

1. Cmd+Shift+P → Type "chat"
2. "Summarize meeting minutes related to Project X"
3. Backend:
   - Create query embedding
   - Semantic search (tantivy)
   - Call LLM with relevant note context
   - Generate response
4. Frontend:
   - Render chat bubbles
   - Display source note links (Visual RAG)
5. Click source → Go to that note

Scenario 3: Extracting PDF Tables

1. Cmd+Shift+P → Type "pdf"
2. Select PDF file
3. Backend:
   - Parse PDF
   - Detect tables
   - Convert to Markdown
4. Frontend:
   - PDF preview
   - Preview extracted tables
   - Editable Markdown
5. "Insert" → Insert into current note

5. Business Model

5.1 Pricing Policy

CategoryPriceContents
Core (OSS)FreeFull functionality of Rust backend, CLI usable
Obsidian Plugin$29 one-timePolished UI, Obsidian integration, support, updates
Team License$99/team (5 pax)Plugin + shared settings, priority support

5.2 Why $29 one-time?

Subscription Model ProblemOne-time Model Advantage
Readwise $120/yr → Complaints about cost$29 = 3 months of subscription
Backlash against Smart Connections going paidBuy once, use forever
Subscription fatigueLow psychological resistance

5.3 Ensuring Sustainability

StrategyDescription
Paid Major UpdatesSeparate purchase for major versions like v2.0, v3.0 (discounts)
Team LicenseB2B revenue source
SponsorshipGitHub Sponsors, corporate support
Expansion PlatformsRaycast extension, VSCode extension, etc.

5.4 Revenue Forecast (Realistic)

Conservative Scenario (Year 1):

Downloads: 5,000~15,000
Conversion rate: 2~3%
Sales: 100~450 cases
Revenue: $2,900~$13,050

Optimistic Scenario (Year 1):

Downloads: 20,000~30,000
Conversion rate: 3~5%
Sales: 600~1,500 cases
Revenue: $17,400~$43,500

Key: First year at side project level. Significant growth in years 2~3.


6. Development Roadmap

Phase 1: Core Engine (8 weeks)

WeekMilestoneDetails
1-2Project SetupRust project structure, JSON-RPC server, CI/CD
3-4YouTube Moduleyt-dlp integration, transcript extraction, metadata
5-6PDF ModuleText extraction, table detection, basic OCR
7-8RSS ModuleFeed parsing, article extraction, storage

Phase 1 Goals:

  • Public unified-launcher-core on GitHub
  • Basic features testable via CLI
  • JSON-RPC API documentation

Phase 2: AI & Integration (6 weeks)

WeekMilestoneDetails
9-10AI Foundationllama.cpp integration, embedding, tantivy index
11-12RAG PipelineSemantic search, context composition, response generation
13-14External APIWallabag, Hoarder API clients

Phase 2 Goals:

  • Completion of AI features
  • Completion of external service integration

Phase 3: Obsidian Plugin (6 weeks)

WeekMilestoneDetails
15-16Plugin FoundationObsidian API integration, IPC bridge, settings system
17-18Command PaletteRaycast-style UI, module switching
19-20Module UICompletion of UI for YouTube/PDF/AI/RSS modules

Phase 3 Goals:

  • Launch of paid plugin
  • License system setup
  • Payment integration (Gumroad/Paddle)

Phase 4: Polish & Launch (4 weeks)

WeekMilestoneDetails
21-22Beta TestingClosed beta, feedback collection, bug fixes
23-24LaunchMarketing, documentation, community setup

Total Duration: ~24 weeks (6 months)


7. Risks and Mitigation

RiskImpactProbabilityMitigation Strategy
Emergence of free UIMediumLowCompete with quality/speed, community building
Obsidian policy changeHighLowUse API first, monitor policies
Rust Sidecar deploymentMediumMediumCross-platform CI, optional download
LLM model sizeMediumMediumLight model by default, large model optional
Development delayMediumMediumReduce MVP scope, gradual release

8. Success Metrics

Launch Metrics (3 months post-launch)

MetricGoal
Core GitHub Stars500+
Plugin Sales200+
Discord Members500+
NPS50+

Growth Metrics (12 months post-launch)

MetricGoal
Core GitHub Stars2,000+
Plugin Sales (Cumulative)1,000+
Monthly Active Users5,000+
Core Contributors20+

9. Competitive Advantage Summary

Why can we win?

CompetitorTheir WeaknessOur Strength
Readwise$120/yr subscription, cloud dependency$29 one-time, 100% local
Smart ConnectionsSlow, unstable UI, backlash against paidRust performance, stable UI
Individual PluginsFragmented, complex settingsUnified UX, Zero Config
CopilotLag, freezingRust backend performance

Differentiation Points

  1. Open Source Engine: Technical trust, community verification
  2. Rust Performance: Breaking JS plugin limits
  3. One-time Purchase: Resolving subscription fatigue
  4. Unified UX: Raycast-level integrated experience
  5. Local First: Privacy, offline usage

10. Conclusion

Why this product can succeed

  1. Proven Demand: Omnivore termination, Smart Connections dissatisfaction → Alternatives needed
  2. Clear Differentiation: OSS Engine + Paid UX = Trust + Value
  3. Technical Moat: Rust Sidecar = Entry barrier
  4. Reasonable Price: $29 one-time = Low resistance
  5. Scalable: Engine reusable for other platforms

Key Success Factors

1. Core engine quality → Gain community trust
2. UI Polishing → Perception of "$29 value"
3. Community Building → Viral growth
4. Rapid feedback incorporation → User loyalty

Next Steps

  1. ✅ Market research completed
  2. ✅ Competitive analysis completed
  3. ✅ PRD completed (v2.0 - OSS Core model)
  4. ⬜ Tech Spike: Rust JSON-RPC server PoC
  5. ⬜ Tech Spike: Obsidian IPC bridge PoC
  6. ⬜ Start MVP development

This document is a planning phase document and will be updated as development progresses.

On this page

Obsidian Unified Launcher PRD"Raycast for Obsidian" - Unified PKM Workstation1. Executive Summary1.1 Problem Definition1.2 Solution1.3 Business Model: Reverse Open Core1.4 Why this structure?1.5 Positioning2. Market Analysis2.1 Competitor App Feature Matrix (Read-it-later / PKM)2.2 Obsidian Plugin Ecosystem Status2.2.1 Web Clipper Category2.2.2 YouTube/Media Category2.2.3 AI/LLM Category2.2.4 RSS Category2.2.5 PDF Category2.3 Market Vacancy (Critical Gaps)High Priority Gaps (Clear Demand + No Competition)Medium Priority Gaps3. Product Design3.1 Core Concept: "Raycast for Obsidian"3.2 Architecture: Backend OSS + Frontend Paid (HTTP Server)3.2.1 Mobile Support3.3 Why this structure works?Advantages of Open Source BackendJustification for Paid FrontendRisk Analysis of "Free UI" Emergence3.4 Rust Backend Tech Stack3.5 UI/UX Design Principles4. Functional Specifications4.1 Features by Module4.2 User ScenariosScenario 1: Organizing YouTube VideosScenario 2: Searching Notes via AI ChatScenario 3: Extracting PDF Tables5. Business Model5.1 Pricing Policy5.2 Why $29 one-time?5.3 Ensuring Sustainability5.4 Revenue Forecast (Realistic)6. Development RoadmapPhase 1: Core Engine (8 weeks)Phase 2: AI & Integration (6 weeks)Phase 3: Obsidian Plugin (6 weeks)Phase 4: Polish & Launch (4 weeks)7. Risks and Mitigation8. Success MetricsLaunch Metrics (3 months post-launch)Growth Metrics (12 months post-launch)9. Competitive Advantage SummaryWhy can we win?Differentiation Points10. ConclusionWhy this product can succeedKey Success FactorsNext Steps