Skip to content

kylabuildsthings-oss/stitch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stitch

Always-on desktop subscription manager that pings you before renewals and lets you approve payments with simulated voice + face MFA.

Why Stitch changed

Stitch pivoted from travel booking to subscription payment control for a faster, payment-centric MVP:

  • Single dashboard for recurring subscriptions
  • Due-soon payment pings
  • Voice-triggered approval flow ("approve")
  • Simulated face verification step before approval
  • Local-first desktop experience for demo speed and privacy

Requirements

  • Rust (stable)
  • Node.js 20+ and npm

Quick start

From the repository root:

cd "/Volumes/KYE SSD 2023/STITCH"
npm install

Run desktop app (Tauri + Vite):

npm run dev

Run browser-only UI (no Tauri window):

npm run dev:browser

Browser URL: http://localhost:1420/

Product MVP features

  • SubscriptionList: upcoming renewals with approve actions
  • PaymentPingPopup: due-soon ping surface
  • VoiceStatusIndicator: simulated keyword listening state
  • FaceAuthModal: 2-second simulated face scan
  • SettingsPanel: voice toggle, face MFA toggle, auto-approve threshold
  • PaymentHistory: approved renewals and totals

Architecture

  • apps/desktop: Tauri 2 + React + TypeScript + Vite + Tailwind app shell
  • packages/shared: shared schemas/types/constants
  • apps/desktop/src/fixtures/subscriptions.ts: MVP subscription mock data

Development notes

Use Vite only so Chrome, Safari, or Cursor’s simple browser can load the app. Leave this terminal open while you work.

From the repo root:

cd "/Volumes/KYE SSD 2023/STITCH"
npm install
npm run dev:browser

Then open http://localhost:1420/ (or use “Simple Browser” in the editor).

dev:browser is the same as dev:ui — a clearer name. Do not run npm run dev (Tauri) in another terminal at the same time: both need port 1420 and will conflict.

Limitation: Browser mode does not run Tauri-specific APIs (@tauri-apps/api invoke, etc.). For full desktop behavior, use npm run dev in its own session when you need the native window.

Stuck terminal, Ctrl+C does nothing, or “port in use”

You probably still have Vite or stitch-desktop running on port 1420. From the repo root:

npm run kill:dev

Or manually in Terminal.app (outside Cursor if the editor terminal is wedged):

lsof -nP -iTCP:1420 -sTCP:LISTEN
kill -9 <PID_FROM_FIRST_COLUMN>

Then close the dead terminal tab in Cursor (trash icon) and open a new terminal.

Important: If your log showed cargo run and Running target/debug/stitch-desktop, you were on npm run dev (Tauri), not browser-only. For “just show me the app in Chrome,” use npm run dev:browser only — no Rust step, usually easier to stop with Ctrl+C.


Commands

  • npm install: install workspace dependencies
  • npm run dev: desktop mode (Tauri window + Vite)
  • npm run dev:ui / npm run dev:browser: browser mode only
  • npm run build: production frontend build
  • npm run tauri build: desktop bundle build
  • npm run lint: lint desktop workspace
  • npm run typecheck: typecheck shared + desktop workspaces
  • npm run kill:dev: kill stuck Vite/Tauri process on port 1420

dev:ui is run internally by Tauri as beforeDevCommand; run it manually only when you want the browser without a native window.

Session Persistence (v1 JSON)

  • Tauri commands are implemented in Rust: save_session, load_session, list_sessions.
  • React wrappers expose typed functions: saveSession, loadSession, listSessions in apps/desktop/src/persistence/sessionStore.ts.
  • Loaded data is validated on the frontend with shared schemas (parseSession, messageSchema).
  • Storage format is JSON (no SQLite yet, no network sync).

macOS file location

Sessions are saved under:

~/Library/Application Support/com.stitch.desktop/sessions/

Each session is a JSON file named from the session id (sanitized).

Brand

User-facing name is Stitch only (no “Conductor” in product copy).

Security

See docs/security-checklist.md for MVP hardening status (capabilities, IPC validation, CSP, and future VPS requirements).

About

Always-on desktop subscription manager with due-date pings and simulated voice + face MFA payment approvals.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors