Decisions

  • Tech stack (web framework, mobile approach) · Phase 1 · ready
  • Hosting strategy (local-first vs cloud) · Phase 1 · ready
  • Auth model (single-user vs multi-user) · Phase 1 · ready

User Tasks

  • Define must-have features for v1 · Phase 1 · ready
  • Review wireframes / mockups · Phase 2 · blocked

Summary

Build a custom UI for phone, tablet, and laptop that replaces Obsidian as the primary interface to the vault. Backend remains Markdown files and databases.

Problem / Motivation

Obsidian is great for Markdown editing but has limitations as the Opus system grows:

  • No custom workflows (feature lifecycle, dashboards, inbox processing)
  • Mobile app is limited and slow for structured interactions
  • Can’t integrate deeply with Claude/LLM interactions
  • No real-time sync or collaboration features tailored to Opus
  • UI can’t be customized for specific Opus concepts (features, briefings, tasks)

A custom UI enables purpose-built views, better mobile experience, and tighter integration with the AI backend.

Proposed Solution

Build a web app (responsive for all devices) with:

  • Backend: API layer that reads/writes the existing Markdown vault + optional database for metadata/search
  • Frontend: Responsive web UI with views tailored to Opus workflows
  • Storage: Markdown files remain the source of truth. Database layer for indexing, search, and fast queries
  • Sync: File watcher keeps DB in sync with Markdown changes (from any source)

Open Questions

1. Tech Stack

Question: Which framework/stack to use?

OptionDescription
A) Next.js + SQLiteFull-stack React. SSR for fast loads, SQLite for local DB. Can deploy anywhere
B) SvelteKit + SQLiteLighter than React, excellent performance. Smaller ecosystem
C) FastAPI (Python) + React SPAPython backend matches src/ codebase. Separate frontend
D) Tauri + SvelteKitNative desktop app with web tech. Excellent performance, but no web access

Recommendation: Option C — Python backend aligns with existing src/ codebase, React frontend for rich UI. SQLite or PostgreSQL for metadata.

Decision:

2. Mobile Strategy

Question: How to handle phone/tablet access?

OptionDescription
A) PWA (Progressive Web App)Responsive web app installable on phone. Single codebase, works offline
B) React NativeNative mobile app. Better UX but separate codebase
C) Responsive web onlyJust a website, no install. Simplest but no offline

Recommendation: Option A — PWA gives native-like experience with single codebase.

Decision:

3. Hosting

Question: Where does this run?

OptionDescription
A) Local onlyRuns on laptop, access via LAN. No internet needed
B) VPS (ties into FR-019)Hosted on VPS, accessible from anywhere. Needs auth
C) HybridLocal-first with optional cloud sync

Recommendation: Option B — VPS deployment enables phone access from anywhere. Ties into FR-019.

Decision:


Phase Overview

PhaseDescriptionStatus
Phase 1Core architecture: API + vault reader + basic UI shell
Phase 2Key views: feature dashboard, inbox, quick capture
Phase 3Mobile optimization (PWA), offline support
Phase 4Advanced: search, briefings view, chat interface
Phase 5Real-time: file watcher, live updates, notifications

Phase 1: Core Architecture —

Goal: API that reads/writes the Markdown vault, basic UI shell with navigation.

File / FeatureDetailsOwnerStatus
src/opus/ui/api/vault.pyVault reader: parse Markdown + frontmatteropus
src/opus/ui/api/routes.pyREST API endpoints (list files, read, write, search)opus
src/opus/ui/api/db.pySQLite metadata index (frontmatter fields, tags)opus
src/opus/ui/api/sync.pyFile watcher → DB syncopus
src/opus/ui/frontend/React app scaffold with routingopus

Phase 2: Core Views —

Goal: Purpose-built views for the most-used Opus workflows.

File / FeatureDetailsOwnerStatus
Feature dashboardKanban-style view of feature lifecycleopus
Inbox viewQuick capture + inbox items with actionsopus
File editorMarkdown editor with frontmatter supportopus
SearchFull-text search across vaultopus

Prerequisites / Gap Analysis

Requirements

RequirementDescription
REQ-1Python backend (FastAPI)
REQ-2Markdown parser with frontmatter support
REQ-3File system watcher for live sync
REQ-4Auth layer for remote access

Current State

ComponentStatusDetails
Vault structuredoneWell-defined Markdown structure with frontmatter
Python src/Not yet started (FR-009)
VPSNot yet deployed (FR-019)

Gap (What’s missing?)

GapEffortBlocker?
Python project scaffoldMediumYes (FR-009)
VPS for remote accessMediumNo (can run locally first)
Auth systemLowNo (single-user initially)

Test

Manual tests

TestExpectedActualLast
API returns vault file listJSON array of files with metadatapending-
Edit file via UI and verify .md updatedMarkdown file reflects changespending-
Mobile PWA installableApp installs on phonepending-

AI-verified tests

ScenarioExpected behaviorVerification method

E2E tests

ScenarioAssertion

Integration tests

ComponentCoverage

Unit tests

ComponentTestsCoverage

History

DateEventDetails
2026-03-16CreatedUser wants custom UI to replace Obsidian across all devices

References

  • FR-019 (VPS Deployment) — hosting dependency
  • FR-009 (Python Project Scaffold) — backend dependency