Startup Build

Recallink · macOS Menubar

Recallink's read-only macOS companion: one click on the menu bar shows only the people who are due for a reconnect — same cloud data, same rlkenc:v1 encryption as web and mobile.

PersonalDuration 3wContribution 100%2026-072026-08
Key Metric: Read-only · zero cloud writes · the web encryption recipe verified against a shared fixture
Engineering Role
FrontendEnd-to-End
Startup Build
Recallink · macOS Menubar
WEB
#Product#Frontend#Personal#Tauri 2

Overview

The PWA is the full desktop experience; this is the glanceable surface that is always one click away. A Tauri 2 tray + WKWebView popover (360×480) with no Dock icon, Google sign-in that finishes in the system browser and returns the PKCE code through a recallink:// deep link, and a sync passphrase asked once per run with the AES key derived in memory only. The app never writes to the cloud.

My Work

  • Tauri 2 Rust tray (Accessory policy) + deep-link and single-instance plugins
  • Cloud scans bounded by immutable-id keyset pagination and a decryption work cap
  • Latest-only single-flight refresh · decrypt-error classes · unlock probe
  • CSP pinned to self + *.supabase.co · brand v4.1 icon set

Features

  • Tray `RL` click toggles the popover; it hides when it loses focus
  • Tray due-count badge · last-refreshed time
  • System-browser Google sign-in → recallink://auth/callback PKCE exchange
  • Cancellable sign-in wait — Cancel/Retry · copy link · 45-second timeout
  • "Today" computed in the user's pinned timezone

Highlights

  • Web Today panel's reconnectDueList logic ported 1:1 — rows deep-link into the web app
  • PBKDF2-SHA256/250k → AES-256-GCM, wire-identical with web · cross-platform fixture test
  • Passphrase never stored — the key lives in memory and dies with the app
  • Visibility, manual, and 15-minute tray refreshes coalesce per unlocked vault
  • Fails closed above 100,000 contacts or 250,000 candidate links — no unbounded scans

Timeline

2026-072026-08
Role: Desktop, solo
Contribution: 100%
Collaboration: Personal

Tech Stack

</>Tauri 2 · React 19 · supabase-js · rlkenc:v1

Tauri 2RustReact 19TypeScriptVitesupabase-jsWeb Crypto (AES-256-GCM)Vitest